Git使用

如何修改上次的 commit

比如有的时候 commit 漏掉了文件、commit 信息写错了,可以这么做:

你要指定一个有效的编辑器作为 Git 的默认编辑器,可以使 Vim 或者 VSCode:

1
git config --global core.editor "vim" # 使用 VSCode 的话就用 code

然后将上次忘记提交的修改先 git add (如果有的话),接着:

1
git commit --amend

--amend 会用新的内容替换上一次提交,而不是创建一个新的提交。如果上一次提交已经被推送到远程仓库,使用 --amend 后需要强制推送:

1
git push --force

这个方法我有时候用来同步一下两台电脑上的代码,因为有时候一台电脑上写了一部分代码但是还没有到一次提交的地步,这时如果要外出或者要用另一台电脑了,就可以用这个方法来同步一下。

不过,使用 git push --force 强制推送后,远程仓库的历史记录会被改写。这种操作可能会导致本地和远程分支的提交历史不一致。我自己通常这么解决:

1
2
git fetch origin
git reset --hard origin/<branch>

这一般是不需要保留本地未推送的更改,可以直接将本地分支强制更新为远程分支的状态。

git 如何移除 submodule

1
2
3
4
5
git submodule deinit -f path/to/submodule
git rm -f path/to/submodule
rm -rf path/to/submodule  # 如果要删除物理目录
git commit -m "Removed submodule path/to/submodule"
rm -rf .git/modules/path/to/submodule  # 可选清理

推送分支

第一次推送(远程分支可能还不存在)

1
git push -u origin 分支名

## 推送到远程的另一个分支名

如果想把本地分支 dev 推送到远程的 test 分支:

1
git push origin dev:test
Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计