像svn一样使用Git

用惯了 svn 的人,使用 Git 的时候,pull 命令可能会提示下面错误:

Git Pull Failed
Your local changes would be overwritten by merge. 
Commit, stash or revert them to proceed. 
View them

意思是说你本地改了一些东西,拉代码时有冲突,需要解决这些。
如果此时你提交本地的修改,又会提示你先 pull,有的人可能就要骂娘了。
其实没必要,使用 stash 命令可以搞定这些。

git stash
git pull 
git stash pop

stash 这个词是隐藏的意思,这里面可以理解为创建了一个本地的备份:

  • git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到 Git 栈中。
  • git stash pop: 从 Git 栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个 Stash 的内容,所以用栈来管理,pop 会从最近的一个 stash 中读取内容并恢复。

然后手动修改冲突后提交。手动打开文件后会发现,代码会被<<<<<<<<<========>>>>>>>>>等包围,这是冲突标记。

关于冲突标记:<<<<<<======之间的内容是别人修改的,========>>>>>>>>>之间的内容是本地自己修改的。

至此,本文就结束了。


什么?这还看不懂?蛤?你不用 git 命令,而是习惯了开发工具集成的界面操作?
好,那就写更细一点:

1.现有本地文件:

00
别人(队友)改成了这样:
stash
而且队友已经提交了,所以 master 上改成了dkehfkdf别人,而我们本地也动了这个文件,改成了这个样子:
000
这时候如果执行 pull 会报错,试试 stash,这样:

2. Stash Changes

01
然后弹个窗让你输入该备份的名称(可以不填):
02
我这里起名叫 20190920pull,点击 create stash

3. pull 代码

此时不会提示错误了。

4. Unstash Changes

03
不捉迷藏了,本地代码和 pull 下来的代码见见面。会提示:
03
可以看到 stash@{0},stash@{1},stash@{2} ,1 和 2 是我之前弄得,这里我们只管 stash@{0},也就是上面 git 命令对应的 git stash pop,点击下面的 Apply Stash:
05
这个应该能看懂,选别人的,我们的,还是手动 merge,我们当然选择 merge,这是弹出一个让人舒服的界面:
06
左边是 pull 下来的,右边是 stash 的,中间是最终的结果,需要手动修改。

多说几句,如果你不喜欢这么漂亮的界面,也可以用另一种方法(最终效果同上),手动打开冲突的文件:
08
代码会被<<<<<<<<<========>>>>>>>>>等包围,这是冲突标记。

关于冲突标记:<<<<<<======之间的内容是别人修改的,========>>>>>>>>>之间的内容是本地自己修改的。

改成你想要的样:
09

5. 提交代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值