这两天开始准备在GitHub和别人一起开发,然后fork了别人的项目,然后发现自己git不是很熟练,尤其是协同开发的时候。

今天就简单总结几条命令。

创建分支

一般你fork别人的项目,然后自己clone到本机。一般都是master分支是需要维护的。如果你的master分支和upstream/master(就是你clone的源的master分支是一样),那就很简单,直接以你自己的master为基础,建立新的分支。

git checkout master # 进入master分支
git branch dev    # 创建dev分支
git checkout dev  # 进入dev分支

或者一个命令直接以远程的dev分布为基础新建。

git checkout -b dev origin/dev 

然后你接可以在dev分支上大展拳脚了,代码码完了,直接到GitHub网站上提交一个请求(New Pull Requests)等着大佬同意就好了,或者提出修改意见。

如果你很久之前就fork了别人的项目,但是别人的master要比你的master心新的多,怎么办?第一种是更新你的master,然后和之前一样。

git merge upstream/master

另外一个就是直接在upstream/master基础上新建分支:

git checkout upstream/master # 进入upstream/master分支
git branch dev    # 创建dev分支
git checkout dev  # 进入dev分支

同步分支

将远程分支同步本地:

git checkout --track origin/dev

将远程分支同步本地,直接进入该分支,然后git pull就好了。

向远程仓库推送:

git push origin dev

删除分支

删除远程分支:

git push origin --delete dev

删除本地分支

git checkout other # 先进入其他分支
git branch -d test

重命名远程分支

分为三个步骤:

1、将远程分支dev同步到本地

git checkout --track origin/dev

2、 重命名本地分支

git branch -m dev develop

3、删除远程分支

git push --delete origin dev

4、将本地分支同步到远程

git push origin develop

在其他非 upstream 的基础上继续工作

如果你想在自己师兄的代码基础上做,而且在未成形之前不希望其他人看到,只希望你的师兄进行 review,那么你可以到你师兄的仓库,然后找到相应的 branch,然后修改一个你打算要改的文件,随便改,改完了就会在你的仓库下生成一个 patch-XXX 的分支,你可以在这个分支上继续工作,不过,如果你不喜欢这个分支名称,可以按照上面的修改。