Git操作--特定场景

一:从本地分支branch_a提交修改到远端分支branch_b
$ git status     				# 可选操作,用于查看本地的修改状况
$ git add xxxxx  				# xxxxx代表想要提交文件的具体路径
$ git commit -m "commit_message"		
$ git stash -m "stash_message"  # 可选操作,若本地有没有commit的改动又想保留此改动,则需要执行此操作
$ git pull origin branch_b      # 将远端分支branch_b的修改拉下来(若有冲突,要先处理冲突再push)
$ git push 						# 将commit的修改推上远端同名分支,然后再创建merge request合入branch_b分支
$ git stash pop					# 将本地暂存的修改弹出

tips:

使用git log命令查看版本号时,如想退出查看log的状态,可在英文输入法下输入q

git status打印出的信息中绿色表示add过的修改,红色表示尚未add的修改,此命令可在git add 操作前后执行,用于明晰即将提交的到底是什么修改

二:一次push了多个commit,但其中又有某一个commit是不想要的
# 一次push了commit1、commit2、commit3,但是想撤销commit2的修改并保留commit1、commit3的修改
$ git log								# 查看commit的版本号
$ git revert -n commit commit2的版本号	  # 
三:撤销提交到暂存区的修改(退回本地)

git status查看时,会发现有些自动提交到暂存区的修改(就是绿色显示的文件名,我感觉是合并分支、弹出暂存导致的),使用如下命令可进行处理

# 将暂存区的修改退回到本地
git reset --mixed head

# 若执行上一句命令时,弹出提示 unstaged changes after reset,则需要将这些修改回退
# 可使用 git diff head -- path查看具体的修改
# 修改回退完成后再次执行git reset --mixed head

四:从远端拉完代码到本地后,不想要了(撤销git pull的误操作)

1、使用git reflog命令查看历史变更记录

fdb70fe HEAD@{0}: pull origin newpbft: Fast-forward
40a9a83 HEAD@{1}: checkout: moving from guan to master
b3fa4c3 HEAD@{2}: commit: copy from newpbft, first init
71bf0ec HEAD@{3}: checkout: moving from newpbft to guan
71bf0ec HEAD@{4}: commit: 1. add moveStore() to clean up certStore and blockStore.
1006d67 HEAD@{5}: commit: 1. Add PBFT branch to Puppeth.
fa3fb56 HEAD@{6}: commit: 1. change some errors about packages and vars
5f40fdc HEAD@{7}: checkout: moving from master to newpbft
40a9a83 HEAD@{8}: clone: from https://github.com/yeongchingtarn/geth-pbft.git

2、使用git reset --hard HEAD@{n},回退到指定的版本

如上图的记录中可运行git reset --hard 40a9a83

五:git stash pop时遇到冲突

背景:暂存了修改文件a、b、c、d,拉远端分支后,想要把暂存的修改弹出,弹出时文件b、c、d正常弹出,文件a遇到冲突:

git status查看会发现文件b、c、d的状态已经变成了Changes to be commited(文件名字是绿色的),如果想要撤销本次自动提交到暂存区的修改,可使用git reset --mixed head

修改虽然已经应用到工作区,但由于遇到了冲突,所以stash list里保留了此次修改,如不需要可使用git stash drop删除

六:git push会进入编写提交信息的界面,输入:wq不能退出

[按esc]输入:wq后提示不能成功退出编辑器,反而提示:

E45: 'readonly' option is set (add ! to override)

其实提示信息写的很全,告诉你出错原因是现在是只读模式,:wq表示保存并退出是不能起效的,解决办法是在后面加!来强制退出,最后我使用的是:q!,表示不保存且强制退出wim编辑器

参考博客:
Git 版本回退方法_泡泡大怪兽的博客-CSDN博客_git版本回退

git pull 撤销误操作_git pull 放弃_Publish or Perish的博客-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值