git add
- git add ./myfile
将myfile文件加入暂存区
git commit
-
git commit -m "first commit"
将暂存区提交到本次仓库,并设置本次提交的信息 -
git commit -a
等同于先执行git add 然后再执行commit,这里只提交所有跟踪过的文件。未加入跟踪的文件不会被提交。该命令不支持提交指定文件
git diff
-
git diff ./myfile
查看工作区myfile文件的改动,若不指定文件,则查看整个工作区改动。 -
git diff --cached ./myfile
如果myfile改动后被add到暂存区,需要增加 --cached才能查看,若不指定文件名,则查看所有文件。 -
git diff HEAD
可以查看所有改动,包括暂存区与工作区 -
git diff a34f13 68ab2c
查看两次提交的改动
git reset
-
git reset
回退所有内容到上一个版本
隐藏的参数为 --mixed和HEAD -
git reset 92039
回退到指定提交
隐藏的参数为 --mixed和HEAD -
git reset --soft 268bbc
回退commit到268bbc版本,本地仓库及暂存库内容不发生变化。 -
git reset --mixed 268bbc
回退到268bbc版本,保留文件的更改,清空暂存区内容。
隐藏的参数为HEAD, --mixed是reset的默认值,与soft、hard互斥。 -
git reset --hard
回退到268bbc版本,所有被跟踪的文件会恢复到该版本时的样子。暂存区也会被清空,未提交的更改将会被丢弃。
git rm
-
git rm ./myfile
移除后文件不存在。如果文件更改且提交到了暂存区,需要使用git rm -f ./myfile强制移除。
= "rm ./myfile" + "git add ./myfile" -
git rm --cached ./myfile
只是移除暂存区中的myfile,该文件依旧在工作区,且和执行该命令前文件内容一致。git log
-
git log --oneline
增加oneline参数时,查看的是简洁log信息 -
git log --gragh
该参数会显示拓扑结构 -
git log --author=wuzhe
查看由wuzhe提交的部分
git blame
git blame [<options>] [<rev-opts>] [<rev>] [--] <file>
- git blame ./myfile
查看myfile的更改记录
git remote
git remote -v
git remote rename old new
git remote remove name
-
git remote show https://github.com/wuzhe/git_test
查看本地存储的远程仓库信息 -
git remote add origin https://github.com/wuzhe/git_test
增加远程仓库,且在本地对其命名为origin
git fetch
git fetch [<options>] [<repository> [<refspec>...]]
- git fetch origin
获取origin仓库的内容到本地,此时并没有合并。我们可以通过git merge origin/master合并到当前分支
git pull
git pull <远程主机名> <远程分支名>:<本地分支名>
-
git pull origin master
将origin对应的远程分支master拉取到本地,与当前分支合并。 -
git pull origin master:local_branch
将origin远程分支master拉去过来与本地local_branch合并
git push
git push <远程主机名> <本地分支名>:<远程分支名>
-
git push origin master
将本地的master分支推送到origin主机的master分支。等同于git push origin master:master -
git push origin --deleter master
删除origin主机的master分支