Git超经典操作场景,哪怕是老手也有收获!

2024-04-15 10:46:49 浏览数 (2)

忘记提交了啥

你用 git commit -m 提交了一次变化(changes),你可以用git show命令显示当前HEAD上的最近一次的提交(commit):

代码语言:javascript复制
$ git show

提交 commit 信息( commit message )写错了

如果你 commit 信息写错了,但还没有推( push ), 可以通过下面的方法来修改提交信息(commit message):

代码语言:javascript复制
git commit --amend --only  

也可以用一条命令:

代码语言:javascript复制
git commit --amend --only -m 'xxxxxxx'  

从一个提交( commit )里移除一个文件

代码语言:javascript复制
git checkout HEAD^ myfile  
git add -A  
git commit --amend  

把未暂存的内容转到一个新分支

直接新建就可以了

代码语言:javascript复制
git checkout -b my-branch  

把未暂存的内容移动到另一个已存在的分支

代码语言:javascript复制
git stash  
git checkout my-branch  
git stash pop  

我不小心删除了我的分支

如果你定期推送到远程, 多数情况下应该是安全的,但有些时候还是可能删除了还没有推到远程的分支。

你应该想起了reflog, 一个升级版的日志,它存储了仓库(repo)里面所有动作的历史。

正如你所见,我们有一个来自删除分支的提交hash(commit hash),接下来看看是否能恢复删除了的分支。

我想撤销rebase/merge

你可以合并(merge)或rebase了一个错误的分支, 或者完成不了一个进行中的rebase/merge。Git 在进行危险操作的时候会把原始的HEAD保存在一个叫ORIG_HEAD的变量里, 所以要把分支恢复到rebase/merge前的状态是很容易的。

代码语言:javascript复制
(my-branch)$ git reset --hard ORIG_HEAD  

暂存指定文件

假设你只想暂存某一个文件

代码语言:javascript复制
git stash push working-directory-path/filename.ext  

我有个大胆的想法

小伙伴在平常有没有遇到以下这种情况:遇到技术难题时,网上教程一堆堆,优秀的很多,但也有很多是过时的,或者是copy来copy去,甚至错别字都没改。

0 人点赞