git常用指令整理
git常用指令一览表
GIT指令 | 说明 |
git add . | 将全部文件的内容加到Git索引以便执行commit. 这个指令不会检查文件夹中是否有文件被删除。 要注意的是,只有执行“ git add”时的文件内容会被加入Git 索引。如果后来又修改了文件, 新的文件内容不会在Git索引中。我们必须重新执行“ git add ”指令,才会更新Git索引。 |
git add 文件名 文件名 … | 将指定的文件的内容加到Git 索引,以便执行commit 操作。要注意的是, 只有执行“ git add”时,文件内容才会被加入Git 索引。如果后来又修改了文件, 新的文件内容不会在Git 索引中。我们必须重新执行“ git add ”指令,才会更新Git 索引。 |
git add -A | 除了把全部文件的内容加到Git 索引以外,也会检查文件夹中是否有文件被删除。这些 被删除的文件会标记在Git 索引中,当执行commit 指令的时候,被标记删除的文件也会 从新的commit 节点中被删除。我们可以从Git 丈档库的历史版本中找回被删除的文件。 |
git add –update 或是 git add -u |
对比当前文件夹中的文件内容和Git 文档库中的文件内容,把有修改的部分和删除的文 或是件加到Git 索引,以便执行commit 。这个指令不会增加新的文件到Git 索引,只会更新 或是删除文件。 |
git blame 文件名 或者 git blame -L 起始行,结束行文件名 或者 git blame -L 起始行,文件名 或者 git blame -L 结束行,文件名 |
显示文件的每一行是由谁修改。可以搭配“-L”选项,指定要从哪一行开始到哪一行 或是结束。如果没有指定起始行,表示是从文件的第一行开始。如果没有指定结束行, 表示要到文件的最后一行。 |
git branch 自己取的分支名称 [commit 节点标识符或是标签] |
按照参数的多少,会有不同的功能: 1. 如果最后指定了commit 节点标识符或是标签,就会从该节点“长”出分支;如果没 有指定commit 节点,就会从最新的commit“长”出分支; 2 “ git branch”指令后面没有接任何参数时,会列出当前文档库中正在开发的所有分支。 |
git branch 新分支的名称己经存在的分支 | 从特定的分支,再长出另一个新的分支。 |
git branch -a | 列出丈档库和远程文档库中所有的分支。 |
git branch -d 要删除的分支名称 | 删除指定的分支。必须先切换到另一个分支,才能执行这个指令。 |
git branch -D 要删除的分支名称 | 在一般情况下,分支应该先合并到另一个分支,之后才能够被删除。如果我们要删除还 没有合并的分支, Git 会显示错误信息,并且停止删除分支的操作。如果确定要删除还 没有合并的分支,可以使用“-D ”选项,要求Git 强制执行删除分支的操作。 |
git branch –list 分支名称样板 | 显示符合“分支名称样板”的所有分支,例如以下指令范例会显示所有以“ bug/”开头 的分支:git branch –list bug/* |
git branch -m 新的分支名称 | 更改分支的名称。必须先切换到该分支,才能够执行这个指令。 |
git checkout 文件1 文件2 … 或是 git checkout . |
Git 会先找索引中有没有该文件,如果有就把它取出:如果没有,就从最新的commit 节点开始,按照时间顺序往前寻找,然后取出第一个找到的文件版本,每一个文件都用 同样的方式处理。如果要取出文档库中全部文件的最新版本,可以执行“ git checkout .”’ |
git checkout commit 节点标识符或标签[文件1 文件2..] | 从Git 文档库的commit 节点取出指定的文件。如果取出的文件和当前文档库中最新 commit 的文件内容不同,这个取出的文件内容会自动记录在Git 索引中。下次执行”git commit” 指令时,这个取出的文件内容就会存入文档库中成为新的版本。如果要避免这 种情况发生,可以在执行“git checkout”指令之后,立刻执行“ git reset HEAD ”来清除 Git 索引。 |
git checkout 分支名称 | 将当前操作的分支切换到指定的分支。 |
git checkout -f 分支名称 | 在切换分支的时候, Git 会先对比丈档库中当前分支的文件内容是否和将要切换过去的 分支的文件内容相同。针对内容不一样的文件, Git 需要从文档库中取出该文件,这是 为了让文件夹中的文件符合分支原来的状态。但是为了避免数据遗失,当Git 要覆盖 文件夹中的文件时,会检查该文件的内容是否已经加入文档库。如果还没有加入, Git 会显示警告信息,并且停止执行,以免资料遗失。如果我们确定不想保留这些已经修改 却还没有加入文档库的文件,可以加入“-f”选项,这样Git 就会强制覆盖修改后的文件。 |
git checkout -b 新分支的名称[commit 节点标识符或是标签] | 创建指定的分支,然后切换到新创建的分支。这个指令等同于先执行“ git branch 新分支的 名称commit 节点标识符或是标签” , 接着再执行“ git checkout 新分支的名称”。如果最 后指定了commit 节点标识符或是标签,就会从该节点“长”出分支。如果没有指定commit 节点,就会从最新的commit “ 长”出分支。 |
git cherry-pick -n commit 节点标识或标签 | 把指定的commit节点的文件版本合并到文件夹中的文件。在默认情况下 ,执行这个指令会创建一个新的commit 节点。如果不想要创建新节 或标签点, 则可以加上”-n”选项。执行这个指令之前, 文件夹中被修改的文件必须先存入Git 文档库,否则会出现警告信息,并且停止执行。 |
git clone “远程Git 文档库”的路径 | 从“远程Git 文档库”复制一个“本地Git或是文档库”到我们的计算机。 第一种方式适用的情况是“远程Git 文档库”在我们自己的计算机上。 |
git clone –bare[程序项目文件夹名称][“远程Git文档库”的路径] | 从“本地Git 文档库”复制出Bare 类型的“远程Git 文档库” 我们通常会帮Bare类型的文档库加上扩展名”.git”,例如game.git。 |
git commit -m ‘这次操作的说明’ [–author=‘操作者姓名 [email 邮箱]’] | 把当前Git 索引的内容送进文档库存储。每一次执行commit 一定要附加说明和操作者 信息。如果没有使用“-m ” 选项, Git 会启动文字编辑程序让我们输入操作说明。默认 的文字编辑程序是vi ,我们可以使用“ git config ”指令设置其他的文字编辑程序,详 细操作方式请参考第2 单元的说明。除了使用“–author”选项输入操作者信息以 外,也可以把操作者的信息记录在Git 配置文件中, 这样就不用加上“–author” 选项. |
git commit -a -m ‘这次操作的说明’[–author=‘操作者姓名[email 邮箱]’] 或是 git commit –all -m ‘这次操作的说明’[–author=‘操作者姓名[email 邮箱]’] |
这个指令的效果等同于先执行“git add -u”再执行“ git commit -m ‘这次操作的说明’ –author=‘操作者姓名[email 邮箱]’”。首先对比当前文件夹中的文件内容和Git 文 档库中的文件内容,把有修改的部分和删除的文件加到Git 索引,然后执行commit。这 个指令不会把新的文件加到Git 文档库。 |
git commit –amend -m ‘新的操作说明’–author=‘操作者姓名[email 邮箱]’) | 修改最近一次commit 节点的操作说明,或是操作者信息 |
git config -l 或者 git config –global -l 或者 git config –system -l |
只有使用“ -l”选项时会显示三个不同层级的配置文件中所有的设置项。低优先权配置 文件的设置项会先显示,最高优先权配置文件的设置项显示在最后。 加入“–global ” 选顶时会显示优先权配置文件中的设置项,也就是登录账号的home 或是directory 里面的.gitconfig 文件中的设置。 加入“–system ”选项时会报示最低优先权配置文件中的设置顶,也就是Git程序安装文 件夹里面的etc\gitconfig 文件夹的设置。 |
git config 设置项名称‘设置值’ 或者 git config –global 设置项名称‘设置值’ 或者 git config –system 设置项名称‘设置值‘ |
在Git 配置文件中加入或是修改设置。如果“设置值”中没有空格,可以省略单引号。 如果没有使用任何选项,表示要将设置项写到当前操作中的Git文档库中的配置文件。 如果加入“–global ”选项,表示要将设置项写到登录账号的home directory 里面 的.gitconfig 配置文件中.如果加入“–system”选项,表示要将设置项 写到Git 程序安装文件夹里面的etc\gitconfig配置文件中。 |
Git diff 文件名 | 判断该文件是否发成冲突或者解决冲突是否成功 |
Git fetch 或者 git fetch –all |
从“远程Git 文档库”取回当前所在分支的最新数据。完成这项工作之后,我们计算机 上的“远程Git 文档库”的当前分支状态就和实际的情况一致。如果想要一次获取全部 分支最新的数据,可以加上“-all ”选项。 |
Git init | 在当前的文件夹创建一个Git 文档库。如果这个文件夹己经有Git 文档库,这个指令就 不会再重新创建,也不会修改其中的内容。Git 文档库其实是名称叫作“ .git ”的子文件 夹,默认它会被隐藏起来,我们可以改变文件夹的查看选项让它显示出来。如果删除这 个子文件夹, Git 文档库的内容就会全部消失。 |
Git init -bare Git 文档库文件夹名称 | 创建Bare 类型的Git 文档库。我们通常会帮Bare 类型的Git 文档库加上扩展名“ .git ”, 例如game.git 。 |
git log | 按照时间顺序,从最近一次的commit 开始,往前列出每一次commit 的信息,包括标识 符、执行人、日期利时间以及说明。 |
Git log -after=’公元年-月-日 时间’[–before=’公元年-月-日 时间’] | 指定要显示某一段时间期间的commit 的信息。“ after"可以换成“-since ”,“–before ” 可以换成“-until”。 |
Git log -author=‘人名’ | 只显示特定人的commit 节点信息。 |
git log –graph –online –all –decorate | 加上“–graph ” 选项会用文本模式排列出commit 节点的演进图 .加上’–oneline ”选 项会用最精简的方式显示. 加上“ –all ”选项会显示所有分支的commit信息。 加上“–decorate ” 选项表示要标示分支的名称。 |
git log –stat 或者 git log –shortstat 或者 git log –numstat |
显示每一个commit 更改程序代码和文件的情况,包括有多少文件被修改了、 增加了几行程序代码和删除了几行程序代码。 |
git ls-file | 列出当前Git 文档库中的文件列表。 |
git ls-remote | 列出“本地Git 文档库”对应的所有“远程Git 文档库” |
git merge 分支名称 | 把指定的分支合并到当前所在的分支。 |
git merge –abort | 合并的过程发生冲突之后,执行这个指令可以放弃合并。Git 文档库和文件夫中的文件 内容都会恢复到未执行合并前的状态。 |
git merge –no-ff 分支名称 | “–no-ff”逃项表示不要使用fast-forward merge 。 |
git mv 原来的文件名 新文件名 | 更改文件夹巾的文件名,或是子文件夹名称,然后把它记录在Git 索引。接着只要执行 “git commit”指令,就可以将更改存入文档库。 |
git pull 或者 git pull -all |
“git pull”指令会执行两项工作: 1. 从“远程Git 文档库”取回当前所在分支的最新数据。完成这项工作之后,计算机 上的“远程Git 文档库”的当前分支状态就和实际的情况一致。如果想要一次获取全部 分支最新的数据,可以加上“–all ”选项。 2. 把“远程Git 文档库”的分支合并到“本 地Git 文档库”的分支。 |
git pull –rebase 或者 git pull -r |
把“ git pull "指令的第二个步骤换成“ git rebase” (原来是“ git merge” )。 |
git push | 执行这个指令时,屏幕画面会显示一段信息,提示我们需要在Git 的配置文件中如入 push.default 的设置。我们可以执行下列指令,指定push.default 为matching: git config –global push.default matching 这样的话,如果只下达”git push”指令,后面没有加上任何参数, Git 会 把“本地Git文档库”中所有曾经传送给“远程Git 文档库”的分支,都一并更新. 或者,可以执行下列指令,指定push.default 为simple: git config –global push.default simple 这样的话,如果只下达“ git push ”指令,后面没有加上任何参数。Git 会检查当前所在 的分支是否在配置文件中记录了它对应的“远程Git 文档库”的分支。如果有,就会 传送更新给“远程Git 文档库”。否则,就不会执行更新。和matching 的设置相比之下, simple 是比较安全的做法。因为它只会更新当前所在的分支,不会一次更新全部的分支。 |
git push origin 分支名称 | 把指定分支的最新状态送到origin 属性所对应的“远程Git 文档库”。执行这个指令不 会在配置文件中记录“本地Git 文档库”的分支和“远程Git 文档库”的分支之间的对 应关系. |
git push “远程Git 文档库”的url 分支名称 | 把指定分支的最新状态送到指定的“远程Git文档库”。执行这个指令不会在配置文件中 记录“本地Git 文档库”的分支和“远程Git文档库”的分支之间的对应关系。 |
git push –all | 把“本地Git 文档库”中所有的分支传送到“远程Git 文档库”。 |
git push “远程Git 文档库”的名称 –delete[分支名称] | 删除“远程Git 文档库”中的指定分支。 |
git rebase 分支名称 | 把指定分支的修改运用到当前的分支。当前分支会变成从指定的分支的HEAD 节点长 出来。 |
git rebase –abort | 如果执行rebase 指令后出现冲突的情况,可以使用这个指令取消rebase 的操作。 Git 文档库会恢复到还没有执行rebase 之前的状态。 |
git rebase –continue | 执行rebase 指令后出现冲突的情况,而且我们己经编辑好发生冲突的文件, 接着就可以执行“git add”指令, 把新的文件内容加入Git 索引, 最后再执行这个指令,完成rebase的操作。 |
git reflog HEAD 或是任何分支的名称 | 显示HEAD 或是任何分支变动的历史记录。如果不加任何参数,默认会列出HEAD 变动 的历史记录。 |
git remote -v | 显示和“远程Git 文档库”相关的设置。 |
git remote add [“远程Git 文档库”的名称] [“远程Git 文档库”的url] | 在“本地Git 文档库”的配置文件中加入指定的“远程Git 文档库”名称, 并且设置它 的url |
git remote rm “远程Git 文档库”的名称 或者 git remote remove “远程Git 文档库”的名称 |
删除“本地Git 文档序”的配置文件指定的“远程Git 文挡库”名称。 一旦删除“远程Git 文档库”的名称,所有属于它的追踪 分支也会一并消失。如果要再还原回来,只要再执行”git remote add”指令 和“ git remote update”指令即可。 |
git remote rename 旧名称 新名称 | 改变“远程Git 文档库”的名称。改变“远程Git 文档库”的名称之后, 和它相关的远程追踪分支的名称也会自动更新。 |
git reset HEAD 文件名 | 将指定文件的内容从Git 索引中删除。如果没有加上文件名,则会清除 Git 索引中所有的内容。 |
git reset –soft commit 节点标识符或是标签 或者 git reset –mixed commit 节点标识符或是标签 或者 git reset –hard commit 节点标识符或是标签 |
将Git 文档库“消磁”,让Git 文挡库恢复到某一个commit 节点的状态, 如果使用“–soft "选项,表示只有文档库中的数据会更改, Git 索引和文件夹中的文件都不会受到影响。如果使用“–mixed ”选项(这是默 认的选项),表示Git 索引也会恢复到指定节点的状态,但是文件夹中的文件仍然不会 受到影响。如果使用“–hard ” 选项,则文档库、Git索引和文件夹中的文件都会恢复到 指定节点的状态。 |
git revert commit 节点 | 回到指定的commit 节点的前一个节点的文件状态。执行完毕后会新增一个commit 节 点。请注意和“ git reset ”指令的差别。 |
git revert –abort | 如果执行“git revert”指令的时候发生冲突,可以执行这个指令取消revert 的操作。 |
git rm 文件名 | Git 会执行两项检查: Git 索引中有没有该文件的内容(也就是 刚刚有没有执行过“git add 文件名”),如果有,表示这个文件的内容和文档库中的不 一样,为了避免遗失数据, Git 会显示提醒信息,然后放弃执行: 2. 文件夹中的文件内容是不是和文档库中的一样,如果不一样, Git 同样会显示提醒 信息,然后放弃执行,以免遗失数据。如果通过以上两项检查, Git 会马上删除文 件夹中的文件,然后在索引中记录要从文档库中删除该文件。最后必须再执行”git commit”指令才会真正从文档库中删除文件。 |
git rm –cached 文件名 | 把指定的文件从tracked 状态变成untracked状态,也就是说从此以后不需要在文档库中 更新这个文件, 而且Git 索引中这个文件的内容也会被删除,但是Git 不会从文件夹中 删除这个文件(这是加上”–cached”选项最大的差别)。 |
git shortlog | 按照人名的字母顺序,列出每-个人执行commit 的次数和说明。 加上“–numbered ”选项(或是“ -n ” )可以按照commit 次数,由高至低按序排列。 如果不需要显示commit 说明,可以加上”–summary "选项(或是“-s ”)。 |
git show commit 节点标识符或是标签 | 显示特定commit 节点的详细信息。commit节点标识符是一组很长的16 进制数字,指 定commit 节点标识符时,不需要将它完整列出。一般只要使用最前面4 个数字即可, Git 会向动找出对应的节点。如果找到超过一个以上的节点, Git 会显示错误信息, 这时候换长一点的数字就可以解决。 |
git show 文件名 | 显示指定文件最新版本的修改情况。也就是比较文件最新版本和前一个版本的差异。 |
git stash list | 显示Git 暂存区的状态。 |
git stash pop 或者 git stash apply |
取出暂存区的文件,将它们的内容合并到当前文件夹中的文件。 |
git stash save | 这个指令会执行下列两项工作: 存储文件夹中被Git 追踪的文件和文档库中最新文件版本的差异: 把文件夹中被Git 追踪的文件还原成文档库中最新的文件版本。 |
git status | 这个指令会执行以下3 项工作: ]. 检查Git 索引的内容,看看是否需要执行commit 存入文档库。 2. 对比文件夹中的文件和文档库中的文件,列出修改过的文件列表。 3. 列出untracked 状态的文件。 |
git tag 自定义的标签名称[commit 节点标识符或是标签] | 指定的commit 节点贴上自定义的标签,之后就可以用这个自定义的标签来指定这个 commit 节点。 |
git tag -d commit 节点标签 | 删除自定义的commit 节点标签。 |
gitk –all | 启动图形操作模式,如果加入“–all ”选项,表示要显示全部的分支,否则只会显示当前 操作中的分支。 |
git常用指令整理的更多相关文章
- Git常用指令整理(Git Cheat Sheet)
[Toc] 1. 创建 复制一个已创建的仓库:git clone ssh://user@domain.com/repo.git 创建一个新的本地仓库:git init 2. 本地修改 显示工作路径下已 ...
- iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )
一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的 git的起源 作者是Linux之父:Linus Bened ...
- (小组)Git 常用命令整理
Git 常用命令整理 取得Git仓库 初始化一个版本仓库 git init Clone远程版本库 git clone git@xbc.me:wordpress.git 添加远程版本库origin,语法 ...
- 实践中的Git常用指令分析
从工作开始,一直都在使用为知笔记(作为程序员需要知道的内容很多---不需要很深入理解,一段时不使用的东西可能就会忘记).但本周一同步不同PC端时,了解到为知会在2017/1/1开始收费! 既然收费了, ...
- Linux常用指令整理
Linux常用命令整理 快捷键 [Tab] [Tab] 接在一串指令的第一个字的后面,则为"命令补全": [Tab] 接在一串指令的第二个字以后时,则为"文件补齐&quo ...
- GIT如何使用:大杀器!所有常用指令整理
1 pwd 显示当前目录2 mkdir 创建目录 cd 进入文件3 git init 变成Git可以管理的仓库(千万不要修改目录下的.git隐藏文件夹)4 ls -ah 可以把.git文件显示出来5 ...
- 针对新手 按照使用顺序和频率整理的git常用指令
PS:以下内容中的所有 aaaaaa 均为可替换的自定义内容 git status 查看当前版本状态,判断有没有未提交的变动 git add . 添加到暂存区(注意有个点)git commit -m ...
- git常用指令
<a>github的提交方式 git status (1)git add .--------------------存储到本地 git add -u ...
- xcode svn commit is not under version control 和 git常用指令
使用Xcode提交一个第三方库时,由于包含资源文件,总是提交不了,提示报错:XXX commit is not under version control (1) 网上查了下,得知 xcode对于sv ...
随机推荐
- ZOJ 3795:Grouping(缩点+最长路)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5303 题意:有n个人m条边,每条边有一个u,v,代表u的年龄大于等于v,现在要 ...
- async与await详解
async和await只是编译器功能.编译器会用Task类创建代码.如果不适用这两个关键字,也可以用C#4.0和Task类实现同样的功能,只是没有那么方便. 题主在概念上确实混淆的不行,但是确实asy ...
- 1. 全文搜索框架 Haystack
1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsearch,Whoosh ...
- 串门赛: NOIP2016模拟赛——By Marvolo 丢脸记
前几天liu_runda来机房颓废,顺便扔给我们一个网址,说这上面有模拟赛,让我们感兴趣的去打一打.一开始还是没打算去看一下的,但是听std说好多人都打,想了一下,还是打一打吧,打着玩,然后就丢脸了. ...
- shell_umask用法
我曾经用touch命令创建一个文件script,默认的权限是"rw-r- -r- -",有的朋友就有可能问为什么是这种组合?其实,这正是umask命令捣的鬼.在linux上输入:u ...
- Jquery serialize()提交多个表单数据
ajax提交多个表单数据: 先把不同的表单分别用serialize()函数,然后把序列化后的数据用+拼接提交给后台,具体例子如下 var data1 = $('#form1).serialize(); ...
- MLlib特征变换方法
Spark1.6.2.2.3 PCA 算法介绍: 主成分分析是一种统计学方法,它使用正交转换从一系列可能相关的变量中提取线性无关变量集,提取出的变量集中的元素称为主成分.使用PCA方法可以对变量集合进 ...
- Code Review最佳实践
我一直认为Code Review(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题.包括像Google.微软这些公司,Code Review都是基本要求,代 ...
- response对象和request对象详解
request方法列举:request.getAuthType() // 获取保护servlet的认证方案名(BASIC或SSL),未受保护的servlet返回的就是nullrequest.getCh ...
- C#编程之接口
1.定义 接口是把公共方法和属性组合起来,以封装特定功能的一个集合.(一旦定义了接口,就可以在类中实现它.这样类就可以支持接口所指定的所有属性和成员) 注意1:接口不能单独存在.不能像实例化一个类那样 ...