[xxx]表示可选,<xxx>表示变量, (xxx)表示另一种写法,|| 表示或
git diff
比较差异
-
git diff
: 比较工作目录中当前文件和暂存区域快照之间的差异 -
git diff --cached || --staged
: 比较已暂存文件与最后一次提交的文件差异 -
git diff <branch>
: 比较当前分支与指定branch的差异 -
git diff <commit>
: 比较当前文件与指定commit的差异
git commit
提交
-
git commit -m "message"
: 提交修改并设置修改信息为message -
git commit --amend
: add后改变上一次提交,第二次提交将代替第一次提交的结果
git reset
重置
-
git reset HEAD <file>
: 取消暂存file -
git reset [--mixed || --soft || --hard] HEAD~n || <commit> [file]
: 将HEAD引用指向给定提交。--soft: 索引(暂存区)和工作目录的内容不变;--mixed(git reset默认的模式): 索引(暂存区)内容也跟着改变,工作目录内容不变; --hard: 索引(暂存区)内容和工作目录内容都会变给定提交时的状态
git checkout
切换分支,撤销修改
-
git checkout <t_branch>
: 切换到t_branch分支 -
git checkout -b || -B <t_branch> [[<origin/>]<f_branch>]
: 拉取远程仓库origin(可省略,默认本地仓库)的f_branch分支,并在本地新建t_branch分支(-b: 新建,-B: 强制新建,即如果存在则覆盖) -
git checkout -- <file>
: 撤销对file的修改 -
git checkout .
: 撤销对所有文件的修改
git branch
-
git branch [-a]
: 列出本地(-a: 远程)分支 -
git branch <branch>
: 新建branch分支 -
git branch [-r] -d [origin/]<branch>
: 删除本地(-r [origin/]<branch>: 远程)branch分支
git push
-
git push origin --delete <branch>
: 删除远程branch分支 -
git push origin :<branch>
: 删除远程branch分支
git fetch
-
git fetch origin
: 拉取远程仓库到本地
git rebase
-
git rebase <branch>
: 将当前分支rebase到branch分支 -
git rebase -i <commit>
: 将当前分支rebase到指定commit上 -
git rebase -i HEAD(master)~n
: 修改前n个提交信息
git stash
-
git stash [save "stash msg"]
: 会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。 -
git stash pop
: 恢复之前缓存的工作目录
提交代码的方式
-
git rebase
,git rebase origin/master
,git push origin <branch>
-
git pull --rebase origin master
,git push origin <branch>