Git add回退 与 切换分支提交 与reset commitID 与 cherry-pick重复提交 与 fork代码

一、add的回退操作

当我们有时候运行 add . 之后,发现自己的分支不对,需要进行撤销操作,这时候使用git reset HEAD,即可以把暂存区的修改取消掉,这时看你的代码,依然是修改后的状态,等待你重新提交。

 

二、利用缓存区切换分支提交

上一篇我们说了Git提交代码的流程,但是有时候我们发现我们想把代码提交到另外一个远端的分支上,你在A 分支做的修改,你想把修改提交到B分支上,这时候不能直接切换分支,需要将你做的修改存储起来,切换分支后提取出来,在提交合并:

1、git stash   --将本地代码暂存到栈中  (git stash list --查看栈中的内容)

2、切换分支 (git checkout 分支名)

3、git stash pop --恢复栈中的代码到本地

4、然后在新分支进行提交合并

5、当然提交合并完成后需要清空栈中的缓存 (git stash drop --清空栈)

 

-----(查看分支  git branch 与 git branch -a )

 

三、使代码回到任意一个commit ID

git reset commitID  (可以查看历史的提交找到提交ID,有些文件名的变动与文件夹的变动无法变动需要手动删除)

 

 

 

四、我们刚提交了代码,但是发现这些代码需要提交到另一个分支上面

可以用git cherry-pick commitID 来操作

1、立即使用git log命令查看刚刚提交的commitID

2、然后切换到想再次提交的分支上面,运行git cherry-pick命令来提交到新分支上,再次之前可以更新一下保证分支最新代码

3、这种操作和stash pop有异曲同工之处,stash pop是未提交时候使用,然而这种是commit之后来操。(git stash缓存有时间限制)

以下是我们提交代码的流程图:

 

五、fork代码,有时候我们一套代码要给两个不同的部门开发,两个部门之间的代码是两套独立的git,但是代码是一样的

有时候我们在A部门开发的代码,需要同步到B部门,则需要将A的代码fork到B中,一下是具体操作

1、切换到B部门的git仓库中(相应项目的相应分支上(例如item服务的release分支)),运行git remote -v 可以看到有一个远端库(这个origin远端库就是你每次将代码push到的地方,现在我们需要一个远端的库来将远端的代码拉倒你本地,也就是拉倒你的B仓库中)

2、运行git remote add upstream 【注意此处要写上A项目的git仓库地址】

3、此刻再运行git remote -v你可以看到多了一个远端库,不过这个库看起来稍微有点不同,是以upstream开头

4、然后运行git fetch upstream 将A的提交拉倒B中

5、然后运行git rebase upstream/release 将拉过来的提交与你本地的release代码合并 

6、然后运行git push origin release 将合并后最新的release代码push到远端 (当然你需要有将代码push到远端release的权限)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值