Git常用命令

来源:互联网 发布:three.js 导入obj模型 编辑:程序博客网 时间:2024/06/08 18:53

将某个文件或某个目录下所有文件添加到下一次提交中:

$ 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 READMEMM RakefileA  lib/git.rbM  lib/simplegit.rb?? LICENSE.txt

新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。出现在右边的 M 表示该文件被修改了但是还没放入暂存区,出现在靠左边的 M 表示该文件被修改了并放入了暂存区。MM代表文件在工作区被修改并提交到暂存区后又在工作区中被修改了,所以在暂存区和工作区都有该文件被修改了的记录。

创建一个附注标签,并注明标签名与附加信息:

$ git tag -a <tagname> -m '<message>'

创建一个轻量标签:

$ git tag <tagname>