将某个文件或某个目录下所有文件添加到下一次提交中:
$ git add <filename/path>
显示所有分支:
$ git branch
创建新分支:
$ git branch <branchname>
删除分支:
$ git branch -d <branchname>
让当前分支追踪某个远程分支:
git branch -u <remotename>/<branch>
branch的其他可选方法:
-v:显示每个分支的最后一次commit;
--merged/--no-merged:显示已合并/未合并的分支
切换到另一个分支(-b代表先创建再切换):
$ git checkout [-b] <branchname>
撤销对文件的修改:
$ git checkout -- <filename>
创建一个新分支追踪某个远程分支,并切换到该分支:
git checkout --track <remotename>/<branch>
在当前目录克隆一个Git仓库:
$ git clone <url>
在当前目录克隆一个Git仓库,并修改仓库名称:
$ git clone <url> <name>
列出Git所有能找到的配置:
$ git config --list
修改Git的某项配置(–global代表全局有效):
$ git config [--global] user.name "John Doe"
$ git config [--global] user.email johndoe@example.com
为命令设置别名:
$ git config --global alias.<alia> '<origin command>'
例:
$ git config --global alias.unstage 'reset HEAD --'
进行一次提交,并附加提交信息:
$ git commit -m "<message>"
跳过使用暂存区域,直接将所有跟踪的文件暂存起来一次提交:
$ git commit -a
重新提交(不会创建新的一次commit):
$ git commit --amend -m "<message>"
查看尚未暂存的文件更新了哪些部分:
$ git diff
查看已暂存的将要添加到下次提交中的部分:
$ git diff --cached/--staged
从远程仓库中抓取数据:
$ git fetch [remote-name]
获取某项命令的帮助:
$ git help xxx
与指定的分支合并:
$ git merge <branch-name>
重命名文件:
$ git mv <oldname> <newname>
查看提交历史:
$ git log
查看一个图像化的提交/分叉历史:
$ git log --oneline --decorate --graph --all
从远程仓库中抓取数据,并和本地分支合并:
$ git pull <remote-name>
推送到远程仓库:
$ git push [remote-name] [branch-name]
查看每个历史版本:
$ git reflog
显示所有远程仓库:
$ git remote
添加新的远程仓库:
$ git remote add <shortname> <url>
删除失效的远程分支:
$ git remote prune <reponame>
撤销某个Commit:
$ git revert <key>
撤销暂存的文件:
$ git reset HEAD <filename>
从已跟踪文件清单中移除某文件或某目录下文件:
git rm [-f] [--cached] <filename/path>
移除已放入暂存区域的文件时需要加上-f,若只是想从Git仓库中移除,而不是从当前工作目录移除时需加上–cached。
查看当前工作树状态(当前分支、仓库下各文件状态):
$ git status [-s]
-s命令代表输出紧凑版本。例:
$ git status -s
M README
MM Rakefile
A lib/git.rb
M lib/simplegit.rb
?? LICENSE.txt
新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。出现在右边的 M 表示该文件被修改了但是还没放入暂存区,出现在靠左边的 M 表示该文件被修改了并放入了暂存区。MM代表文件在工作区被修改并提交到暂存区后又在工作区中被修改了,所以在暂存区和工作区都有该文件被修改了的记录。
创建一个附注标签,并注明标签名与附加信息:
$ git tag -a <tagname> -m '<message>'
创建一个轻量标签:
$ git tag <tagname>