专栏首页前端QGit常见场景解决方法总结

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)过的文件,想删除本地文件,并将删除这个操作更新到远程文件,

git rm -r --cached .git add .git commit -m 'update .gitignore'git push -u origin master

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

$git rm --cached pages/index.wxml

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

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

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

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

提交分支代码

  • 在当前分支下,第一次push,
git push --set-upstream origin [branch]

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

  • 不在当前分支下,
//   git push <远程主机名> <本地分支名>:<远程分支名>git push origin feature_abc:feature_abc  

分支代码操作常用命令

  • 列出所有本地分支
git branch
  • 列出所有远程分支
git branch -r
  • 列出所有本地分支和远程分支
git branch -a
  • 新建一个分支,但依然停留在当前分支
git branch [branch-name]
  • 新建一个分支,并切换到该分支
git checkout -b [branch]
  • 新建一个分支,与指定的远程分支建立追踪关系
git branch --track [branch] [remote-branch]
  • 切换到指定分支,并更新工作区
git checkout [branch-name]
  • 切换到上一个分支
git checkout -
  • 合并指定分支到当前分支
git merge [branch]
  • 删除分支
git branch -d [branch-name]
  • 删除远程分支
git push origin --delete [branch-name]git branch -dr [remote/branch]
  • 拉取所有分支代码
git fetch

本文分享自微信公众号 - 前端Q(luckyWinty),作者:winty

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【JavaScript 教程】浏览器—History 对象

    window.history属性指向 History 对象,它表示当前窗口的浏览历史。

    winty
  • Lodash那些“多余”和让人眼前一亮的 API

    本文初衷是想列举一些比较“多余”的API以及对应原生JS写法;后面发现API过多,精力有限,慢慢的变成记录那些有助于提高开发效率的API,希望对您有所帮助。对于...

    winty
  • 前端中的接口聚合

    详见:https://github.com/LuckyWinty/ToolLibrary/tree/master/src/RequestCombo

    winty
  • Git命令集十一——创建分支命令 原

        对分支操作的强大支持是Git管理工具的一大优势。你可以方便的进行分支的创建、合并、删除等。

    珲少
  • git恢复删除的分支及内容

    git 删除分支 git branch -D 分支名 git查看分支 git branch -a git 删除远程分支 git push origin :分...

    蓓蕾心晴
  • git 分支命令

    git push origin [branch name]:[branch name]

    LeoXu
  • Git 初体验及其常用命令介绍(下)

    在前一篇博文「Git 初体验及其常用命令介绍(上)」中,我们已经了解了 Git 的一些常用命令了,包括status、init、add、commit和log等,下...

    CG国斌
  • Git命令集十六——推送命令 原

    珲少
  • Influxdb存储Engine引擎启动流程

    扫帚的影子
  • 专栏 | 清华大学刘知远:在深度学习时代用HowNet搞事情

    机器之心

扫码关注云+社区

领取腾讯云代金券