Git 学习 二

2017-06-01  本文已影响0人  南京小伙

分支管理

一、创建与合并分支

在第一次 Git 会自动生成一个 master 分支给你,master 是指向提交的,HEAD是指向 master的。所以HEAD 是指向当前分支的

master 分支是一条线,Git 用 master指向最新提交,用 HEAD 指向 master,来确定当前分支。

每次提交 master 都会向前前进一部,

创建一个 dev 分支时。Git 不仅创建了一个 dev 指针,同时改变了 HEAD 指针指向,将 HEAD 指向 dev,而 master 指针不变。

当 dev 分支工作结束,就可以将 dev 分支合并到 master,即将 master 指向 dev 的当前指针提交。

创建分支:git branch 分支名

切换分支:git checkout 分支名

创建,切换分支:git checkout -b 分支名

查看当前分支:git branch

切换到master 分支,然后合并分支:git merge dev,在合并分支前最好 git pull 一下。

在切换分支前,如果在当前分支没有 commit ,直接切换 Git 会自动将修改的部分直接带到当前切换的分支。

只有在 add,commit 之后,在切换分支,才会出现在当前分支修改,切换分支修改不见的效果。

分支可以创建也可以删除:git branch -d 分支名

冲突解决

一、制造冲突

创建一个分支:git branch feature1

切换分支:git checkout feature1

修改工作区内容,然后 add commit,提交到本地版本库。

然后切换到 master 分支上,在 feature1 分支修改的位置从新修改。

然后 add,commit ,提交到本地版本库

然后 git merge feature1 -m “” (把 commit 描述也写进去了)合并两分支,此时就会产生冲突。

因为此时 feature1 分支和 master 分支都有在相同的地方都有代码修改,同时也有提交。造成了 Git 无法合并。

Git 会用 <<<< ==== >>>> 来标记不同分支内容。

修改冲突,然后重新提交。

用 git log --graph --pretty=oneline --abbrev-commit 可以查看合并情况

Stash 暂存

git stash 可以将你现在已工作的内容暂存起来,下次取出。

git stash pop 可以将 stash 暂存的内容取出,同时删除 stash 暂存内容

git stash list 可以查看暂存的内容

每先一个需求最好创建一个分支来进行开发。

git remote -v 可以看出远程库信息

抓取分支

多人协助时,会往 master 和 dev 分支上推送各自修改。

默认情况下,只会 clone 下来时,只能看到本地的 master 分支。

现在要在 dev 分支上开发,必须创建远程的 origin 的 dev 分支到本地

可以通过:git checkout -b dev origin/dev将远程 origin 的 dev 分支创建到本地(即将本地 dev 分支 和本地 dev 分支绑定)。即可以在 dev 分支上开发和 push 到远程。

如果通过:git branch dev 创建 dev 分支,在 git pull 的时候 git 提示

通过 git branch —set-upstream-to=origin/dev dev 来将远程 dev 库和本地 dev 库关联。

之后就可以通过 git pull 操作,进行 push 也是同理,需要关联本地分支和远程分支。

一般操作情况:

1、在推送之前一般先拉取 git pull,如若有冲突解决冲突。

2、在 git push 自己本地的分支

git push 和 git pull 过程中会出现本地分支和远程分支未关联导致 push 和 pull 失败。通过上诉来关联。或根据 git 提示来操作。

上一篇下一篇

猜你喜欢

热点阅读