Git常用指令

Posted by izumo on December 21, 2016

显示完整指令列表

git help -a

常用指令

文档库操作

创建

创建文档库:

git init

创建bare类型文档库:

git init --bare <repository_name>.git

添加、删除、更新、提交

逐个添加:

git add <file_name> [<file_name>]

将所有文件放入缓存,不检查文件夹中是否有文件被删除:

git add .

将所有文件放入缓存,检查文件夹中是否有文件被删除:

git add -A

仅更新或删除文件夹的(所有)内容,不添加文件:

git add -u

将文件移出缓存:

git rm <file_name>

查看缓存区状态:

git status

提交文件:

git commit -m <message>

更改文件、文件夹名称,之后要进行commit操作:

git mv <old_name> <new_name>

回退

回退版本,<commit_id>回退到指定版本,HEAD^[^]回退到上一个(N个)版本:

git reset --hard <commit_id | HEAD^[^]>

标签

给指定commit添加标签:

git tag <tag_name> <commit_id>

删除指定commit的标签:

git tag -d <commit_id>

分支

创建、切换、删除分支

根据已存在的分支复制出新分支:

git branch <new_branch> <exist_branch>

根据已存在的<commit_id | tag>复制出新分支:

git branch <new_branch> <commit_id | tag>

列出本地文档库和远程文档库的所有分支:

git branch -a

删除分支:

git branch -d <branch>

更改当前分支名称:

git branch -m <new_branch_name>

取出某一(多个)文件的最新版本:

git checkout <file_name>

切换分支:

git checkout <branch>

创建分支并切换到该分支:

git checkout -b <branch>

合并分支

合并<branch>分支到当前分支:

git merge <branch>

git merge --no-ff <branch>

git merge --abort <branch>

将指定分支的修改应用到当前分支:

git rebase <branch>

远程文档库操作

远程复制到本地

将远程文档库复制到本地:

git clone <server_name>/<path>/<repository_name>

git clone http://<server>/<path>/<repository_name>

git clone <user_name>@<server>:<path>/<repository_name>

从远程文档库中取回当前分支的最新内容:

git fetch

git fetch --all

从远程文档库取回当前分支(加上--all为全部分支)内容,并把远程文档库的分支合并到本地文档库的分支(?):

git pull

git pull -all

本地复制到远程

将本地已有的文档库复制到远程,远程文档库为bare类型;还需要将本地与远程文档库关联起来;并创建追踪分支:

git clone --bare <local_repository_name> <remote_repository_path>
git remote add <remote_name | origin> <remote_repository_path>
git remote uptate

变通方法:将本地文档库复制到远程后,删除本地的文档库,再将远程文档库复制到本地

将本地文档库分支推送到远程文档库,第一次推送是最好添加-u参数:

git push [-u] <remote_name | origin> <local_baranch_name | master>

将本地文档库分支推送到指定的远程文档库,第一次推送是最好添加-u参数:

git push [-u] <remote_url> <local_branch_name | master>

把本地文档库中所有分支推送到远程文档库:

git push --all

其他

删除远程文档库的分支:

git push <remote_name | origin> --delete <branch>

改变远程文档库名称:

git remote rename <old_remote_name> <new_remote_name>

改变远程文档库的url:

git remote set-url <remote_name> <url>

显示远程文档库信息:

git remote show <remote_name>

文档库配置

本地文档库相关

查看文档库配置信息:

git config -l

比较文件与文档库中的文件:

git diff <file_name> [<file_name>]

查看文档库提交信息:

git log

git log <file_name> [<file_name>]

显示每个commit的改动情况:

git log --stat

列出本地文档库中的文件列表:

git ls-files

远程文档库相关

列出远程文档库中的文件列表:

git ls-remote

查看远程文档库的设置:

git remote -v

在本地文档库配置文件中添加远程文档库信息:

git remote add <remote_name> <remote_url>

删除本地文档库配置文件中指定远程文档库:

git remote rm <remote_name>

更新本地文档库配置文件中远程文档库的信息,一般用于git remote rm后,想要还原回来,使用git remote addgit remote update的情况:

git remote update

参考文献

  1. 孙宏明. 完全学会Git, GitHub, GitServer的24堂课[M]. 清华大学出版社, 2016.