Git常见场景解决方法总结

点击上方蓝色字体,关注我啦~

放弃某次merge

假如你merge的时候产生了很大的冲突,想先放弃某次merge,你可以:

  1. git merge --abort 或

  2. git reset HEAD 或

  3. git checkout HEAD


分支修改切换

在非目的分支上做了修改,想切换回目的分支

还未添加到暂存区/已添加到暂存区还未提交

1. 新建临时分支, git checkout-b new_branch,这样改动会被带到新分支。

然后把非目的分支的修改用 git checkout.恢复。

2. 先 git stash,然后切换到目的分支(git checkout 【target-branch】),在目的分支 git stash pop即可。

这种方式最好理解,就是把改动先放到一个临时区域,让git先别管,到了正确的分支再拿出来。

已提交到本地仓库

这种情况就要有reset了,用 git reset HEAD^撤销最近一次提交,如果有多次提交的话,查找到对应提交id进行reset就行。

git默认的是mixed模式,即撤销暂存区,保留工作区。

这样你再切分支也还能把改动带过去。

当然加--soft也可以,这样能保留暂存区和工作区。

已push到远程仓库

如果很不幸你已经把误修改给push了,你需要用到revert命令,先用 git log查找到你误提交的commitId,然后 git revert commitId,产生一次逆向提交,来对冲掉之前的。之后再push到远程就可以了。


git忽略不提交文件


从未提交过的文件

这种最简单,直接把想忽略的文件加入 .gitignore中忽略提交即可.

已经推送(push)过的文件

已经推送(push)过的文件,想删除本地文件,并将删除这个操作更新到远程文件,


   
   
  1. git rm -r --cached .

  2. git add .

  3. git commit -m 'update .gitignore'

  4. git push -u origin master

已经推送(push)过的文件,想从git远程库中删除,并在以后的提交中忽略,但是却还想在本地保留这个文件,可以使用


   
   
  1. $git rm --cached pages/index.wxml

已经推送(push)过的文件,想在以后的提交时忽略此文件(即使本地对该文件修改过也不同提交新修改),并且不删除git远程库中相应文件,可以使用


   
   
  1. $git update-index --assume-unchanged pages/index.wxml

如果要忽略的是一个目录,则打开 git bash,cd到 目标目录下


   
   
  1. $git update-index --assume-unchanged $(git ls-files | tr '\n' ' ')


提交分支代码


  • 在当前分支下,第一次push,


   
   
  1. git push --set-upstream origin [branch]

这样设置一次之后,后面就直接 git push即可。

  • 不在当前分支下,


   
   
  1. //   git push <远程主机名> <本地分支名>:<远程分支名>

  2. git push origin feature_abc:feature_abc  


分支代码操作常用命令

  • 列出所有本地分支


   
   
  1. git branch

  • 列出所有远程分支


   
   
  1. git branch -r

  • 列出所有本地分支和远程分支


   
   
  1. git branch -a

  • 新建一个分支,但依然停留在当前分支


   
   
  1. git branch [branch-name]

  • 新建一个分支,并切换到该分支


   
   
  1. git checkout -b [branch]

  • 新建一个分支,与指定的远程分支建立追踪关系


   
   
  1. git branch --track [branch] [remote-branch]

  • 切换到指定分支,并更新工作区


   
   
  1. git checkout [branch-name]

  • 切换到上一个分支


   
   
  1. git checkout -

  • 合并指定分支到当前分支


   
   
  1. git merge [branch]

  • 删除分支


   
   
  1. git branch -d [branch-name]

  • 删除远程分支


   
   
  1. git push origin --delete [branch-name]

  2. git branch -dr [remote/branch]

  • 拉取所有分支代码


   
   
  1. git fetch

最后

  • 这是一篇之前写的笔记,现在迁移了过来...

  • 欢迎加我微信(winty230),拉你进技术群,长期交流学习...

  • 欢迎关注「前端Q」,认真学前端,做个有专业的技术人...


在看点这里

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值