git工具常用的项目管理工具,我在使用的过程中,发现我的兄弟们有时候会遇到这样那样的问,通常解决这些问题也需要花费一些时间,我思来想去干脆总结一下,以便于在遇到问题的时候查阅。
在非目的分支上做了修改,想切换回目的分支
还未添加到暂存区/已添加到暂存区还未提交
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了,你需要用到revert命令,先用 git log查找到你误提交的commitId,然后 git revert commitId,产生一次逆向提交,来对冲掉之前的。之后再push到远程就可以了。
这种最简单,直接把想忽略的文件加入 .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' ' ')这样设置一次之后,后面就直接 git push即可。
不在当前分支下, // git push <远程主机名> <本地分支名>:<远程分支名> git push origin feature_abc:feature_abc