git branch 查看所在当前分支(仓库)html
git pull 刷新当前分支(仓库)文件到本机git
git status 查看状态提示On branch master Your branch is up to date with 'origin/master'.nothing to commit, working tree clean,在分支大师,您的分支是最新的'origin / master'。什么都没有,工做树干净vim
git checkout master 切换到分支master 若是切换到分支dev1 git checkout dev1工具
git merge dev2 合并dev2分支(仓库)文件到当前分支spa
git add --all 向本地库添加全部新的文件code
git commit -am '注释说明' 将本地修改过的文件提交到本地仓库(当前分支),并写上说明orm
git push 推送当前分支(仓库)文件到gitHubhtm
git merge 用来作分支合并,将其余分支中的内容合并到当前分支中。好比分支结构以下:
rem
master / C0 ---- C1 ---- C2 ---- C4 \ C3 ---- C5 \ issueFix
当前分支是master
$ git checkout masterget
把issueFix中的内容Merge进来:
$ git merge issueFix
若是没有冲突的话,merge完成。有冲突的话,git会提示那个文件中有冲突,好比有以下冲突:
<<<<<<< HEAD:test.c
printf (“test1″);
=======
printf (“test2″);
>>>>>>> issueFix:test.c
能够看到 ======= 隔开的上半部分,是 HEAD(即 master 分支,在运行 merge 命令时检出的分支)中的内容,下半部分是在 issueFix 分支中的内容。解决冲突的办法无非是两者选其一或者由你亲自整合到一块儿。好比你能够经过把这段内容替换为下面这样来解决:
printf (“test2″);
这个解决方案各采纳了两个分支中的一部份内容,并且删除了 <<<<<<<,=======,和>>>>>>> 这些行。在解决了全部文件里的全部冲突后,运行 git add 将把它们标记为已解决(resolved)。由于一旦暂存,就表示冲突已经解决。若是你想用一个有图形界面的工具来解决这些问题,不妨运行 git mergetool,它会调用一个可视化的合并工具并引导你解决全部冲突:
$ git mergetool
merge tool candidates: kdiff3 tkdiff xxdiff meld gvimdiff opendiff emerge vimdiff
Merging the files: index.html
Normal merge conflict for ‘test.c’:
{local}: modified
{remote}: modified
Hit return to start merge resolution tool (kdiff3):
合并后的分支图以下:
master / C0 ---- C1 ---- C2 ---- C4 ---- C6 \ / C3 ----C5 \ issueFix
注意,此次合并的实现,因为当前 master 分支所指向的 commit (C4)并不是想要并入分支(issueFix)的直接祖先,Git 不得不进行一些处理。就此例而言,Git 会用两个分支的末端(C4 和 C5)和它们的共同祖先(C2)进行一次简单的三方合并。对三方合并的结果做一新的快照,并自动建立一个指向它的 commit(C6)
退出合并工具之后,Git 会询问你合并是否成功。若是回答是,它会为你把相关文件暂存起来,以代表状态为已解决。而后能够用 git commit 来完成此次合并提交。