修改commit信息

  1. git commit --amend -m 'The new message'

使用ssh替换https://

设置某个仓库

  1. git remote set-url origin git@github.com:Aitozi/flink.git

全量替换

  1. git config --global url."git@github.com:".insteadOf http://github.com/ --add
  2. git config --global url."git@github.com:".insteadOf https://github.com/ --add

将一个commit重新拆分成多个

  1. 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

撤销文件的修改

  1. 如果没有被git add到索引区
  1. git checkout file
  1. 如果被git add到索引区,但没有做git commit提交
  1. git reset HEAD file
  2. git checkout file
  1. 如果已被提交,则需要先回退当前提交到工作区,然后撤销文件a的修改
  1. git reset HEAD^
  2. git checkout file

获取上游最新代码

  1. git fetch upstream

暂存本地改动

  1. git stash
  2. git stash list
  3. git stash pop
  4. git stash drop