修改commit信息
git commit --amend -m 'The new message'
使用ssh替换https://
设置某个仓库
git remote set-url origin git@github.com:Aitozi/flink.git
全量替换
git config --global url."git@github.com:".insteadOf http://github.com/ --add
git config --global url."git@github.com:".insteadOf https://github.com/ --add
将一个commit重新拆分成多个
git reset commitId
有时候单个commit过大,需要将其拆分开,可以利用git reset命令将本地的提交回退,通常我们回退一个commit的方法是 git reset --hard commitId
,这样就会把本地的代码的工作区和commit都进行回退。
但是修改commit(拆分)的需求一般是要将commit回退,但是工作区(简单的说就是你的文件改动)不回退,然后你再逐批git add 文件,重新添加到index,再重新commit即可,那么使用默认的git reset commitId
就是这个行为。
关于workspace,index,commit的关系 https://stackoverflow.com/questions/3689838/whats-the-difference-between-head-working-tree-and-index-in-git
撤销文件的修改
- 如果没有被git add到索引区
git checkout file
- 如果被git add到索引区,但没有做git commit提交
git reset HEAD file
git checkout file
- 如果已被提交,则需要先回退当前提交到工作区,然后撤销文件a的修改
git reset HEAD^
git checkout file
获取上游最新代码
git fetch upstream
暂存本地改动
git stash
git stash list
git stash pop
git stash drop