美文网首页
01_Git 命令列表

01_Git 命令列表

作者: 秋的懵懂 | 来源:发表于2018-04-21 08:36 被阅读0次

时间:2018-04-13 作者:魏文应


说明

这个文档适合已经会使用git,但又经常遗忘一些指令的读者。也就是这是用来查表的。

  • git 版本:

  • 操作系统:ubuntu 14.04LTS 32bit

一、常用指令列表

功能 命令 示例 示例说明
初始化仓库 git init git init 在当前目录下生产一个 .git 文件夹,这就是所谓该项目的本地仓库。
跟踪文件 git add git add *.c 跟踪当前目录下的所有 .c 文件,也就是暂存,添加内容到下一次commit提交中。
提交保存 git commit git commit 将跟踪的文件提交,保存到本地仓库。
提交保存 git commit git commit -m "笔记信息" 加上 -m 参数,后面可以加上一些修改信息描述,以便以后查看笔记。
提交保存 git commit git commit -a -m "笔记信息" 加上 -a 参数,把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤。
检查文件状态 git status git status -s 查看当前文件状态。可加参数 -s,显示的更紧凑一些。
查看暂存改动 git diff git diff 查看已暂存和未暂存的修改,只显示尚未暂存的改动。
查看已暂存修改 git diff --staged git diff --staged 显示已暂存的改动。
移除文件 git rm git rm main.c 将某个文件从暂存区移除(工作目录下对应的文件也会被删除),下次提交就没有这个文件。
移除文件 git rm git rm --cached main.c 将某个文件从暂存区移除(工作目录下保留对应的文件不被删除),下次提交就没有这个文件。
检出暂存区文件 git checkout git ckeckout -- readme.md 将一个文件从暂存区检出,覆盖工作目录下相对应的一个文件。
检出已提交文件 git checkout git checkout 3115f6 readme.md 将某个文件从已提交的某个版本中检出,覆盖工作目录和暂存区相对应的一个文件,其中 3115f6 是通过git log 命令查看到的某个版本ID(commit ID)。
撤销暂存 git reset HEAD git reset HEAD readme.md 执行git add readme.md 命令之后,我想撤销这个暂存操作。
文件重命名 git mv git mv file_from file_to 暂存区和工作区的这个文件都被重命名了。
--------------------------------------------- ------------------------------------------- -------------------------------------------------------------------------------------

二、远程仓库操作

功能 命令 示例 示例说明
克隆项目 git clone git clone https://github.com/libgit2/libgit2 这里将从github这个网站,下载一个项目的源代码
查看远程仓库 git remote git remote -v 加上 -v 参数,会把远程仓库地址也显示出来
添加远程仓库 git remote add git remote add <shortname> <url> shortname 是指定一个简称,url 是仓库的网络地址
删除远程仓库 git remote rm git remote rm wwy 删除一个远程仓库
拉取信息 git fetch git fetch wwy 从wwy代表的URL地址,拉取本地没有的信息
推送到远程仓库 git push git push wwy master 将master分支推送到wwy上
远程仓库信息 git remote show git remote show [remote-name] 查看具体某个远程仓库的详细信息
远程仓库重命名 git remote rename git remote rename old new 将远程仓库重命名

三、分支操作命令

功能 命令 示例 示例说明
创建分支 git branch git branch testing 创建一个叫 testing 的分支
切换分支 git checkout git checkout testing HEAD切换到testing分支上
合并分支 git merge git merge hotfix 合并hotfix分支到当前分支上
删除分支 git branch -d git branch -d hotfix 删除hotfix分支,强制删除使用-D参数
查看分支指向 git log git log --oneline --decorate 查看当前分支指向的对象
查看分支列表 git branch git branch -v 列出所有分支,-v 参数可以显示一下概要信息
远程分支列表 git branch git branch -a 列出所有远程分支
变基操作 git rebase git rebase master 将当前分支的基础分支设置为master
中断一次合并 git merge --abort git merge --abort 中断当前的一次合并(还没有合并成功的情况下)
恢复到合并之前 git reset git reset --hard HEAD~ 恢复到合并之前的状态(HEAD回合并前的位置)
  • 查看分支信息: git log --oneline --decorate --graph --all

  • 创建并切换分支: git checkout -b testing

  • 处理合并冲突: git mergetool 然后提示用哪个工具,我这里安装了 vimdiff 。

  • 查看哪些分支被合并到当前分支: git branch --merged

  • 查看哪些分支没有被合并到当前分支: git branch --no-merged

  • 在基于某个分支创建另一个分支: git checkout -b serverfix origin/serverfix ,基于 origin/serverfix 分支创建一个 serverfix 分支,并切换到新创建的 serverfix 分支上。

  • 变基操作步骤:

    git checkout experiment
    git rebase master
    git checkout master
    git merge experiment
    
    # 或者:server 变基到 master上
    git rebase master server
    
    # 变基原则:
    # 总的原则是,只对尚未推送或分享给别人的本地修改执行变基操作清理历史,
    # 从不对已推送至别处的提交执行变基操作,这样,你才能享受到两种方式带来的便利。
    

分支的合并做了哪些事呢?比如,将一个名为 Hotfix 分支合并到当前分支,一般有:

  • 当前分支没有的文件,而hotfix分支有,则将这个文件添加到当前分支。

  • 两个分支修改了相同文件,合并时会提示冲突,通过 git status 查看冲突情况。通过git mergetool 选择一款图形化工具,修改后commit提交即可。

  • 当前分支和 hotfix分支合并一次以后,hotfix 再也没有修改过,这时当前分支和hotfix再做合并操作,无论当前分支做了什么,合并操作则没有任何效果。

  • 将某个A分支合并到当前分支,合并的内容是A分支自上次合并后(如果和当前分支合并过)修改过的文件。

  • 暂存工作(如果修改了文件,突然想切换到其它分支,但又不想执行commit提交,这时需要暂存当前工作):
功能 命令 示例 示例说明
暂存工作 git stash save git stash save 暂存当前工作目录,存储在栈中
暂存列表 git stash list git stash list 查看一下暂存的存储列表
恢复某个暂存 git stash apply git stash apply 也可以指定暂存:git stash apply stash@{2} ,其中stash@{2}通过查看分支列表获得
删除某个暂存 git stash drop git stash drop stash@{0} 删除某个工作暂存

四、信息查看

功能 命令 示例 示例说明
查看提交记录 git log git log 列出所有提交信息
  • git log 命令一些有用的参数:
参数 作用
-p 显示每次提交的内容差异
-2 只显示最近两次提交
--stat 列出被修改过的文件
--pretty=oneline 一行中显示
--graph 通过ASCII 图形表示的分支合并历史

五、打标签

功能 命令 示例 示例说明
创建轻量标签 git tag git tag v1.4 创建一个名为v1.4的标签,没有附加说明信息
创建附注标签 git tag -a git tag -a v1.4 -m 'my version 1.4' -a 和 -m 参数添加了一些说明
后期打标签 git tag -a git tag -a v1.2 9fceb02 9fceb02 可以通过 git log --pretty=oneline 指令查看
查看标签 git show git show v1.4 查看某个标签的具体信息
列出所有标签 git tag git tag 列出所有标签
列出相关标签 git tag -l git tag -l 'v2.*' 列出以 v2. 开头的相关标签
检出标签 git checkout -b git checkout -b version2 v2.0.0 通过创建一个version2分支,将v2.0.0标签检出
共享标签 git push git push origin --tags 将所有的tag标签推送到origin远程仓库
共享标签 git push git push origin v1.4 将v1.4这个tag标签推送到origin远程仓库

六、撤销操作

  • 撤销暂存的文件: git reset HEAD <file> 。有个文件在暂存区中,但你想从暂存区移除这个文件。

  • 覆盖上一次提交: git commit --amend 。在上一次提交以后,发现某个文件没有添加或者多添加了、提交简介写错,重新提交,覆盖上一次提交。注意:要在没有修改文件内容的前提下,上次提交以后紧接着执行才有效,比如:

    git commit -m 'initial commit'
    git add forgotten_file
    git commit --amend
    
  • 撤销对工作区文件的修改: git checkout -- <file> 。从暂存区检出覆盖工作区文件,达到撤销效果。

  • 撤销对暂存区文件的修改: git checkout <commit ID> <file> 。从已提交的文件中,覆盖暂存区和工作区的某个文件,达到撤销的效果。

  • 撤销commit提交git reset HEAD~ 。如果你执行了commit提交命令,但你想撤销这一次commit提交操作。这里通过将HEAD指向提交前的快照来实现撤销效果(HEAD~ 是 HEAD 的父节点,从提交的角度来说,也就是本次提交前的快照)。注:这是下面的 “撤回到任意一次commit提交” 的特例。

  • 撤回到任意一次commit提交: git reset <commit ID> 如果你想撤回到该分支的某次commit上,将后面commit提交的内容舍弃(包括相关的提交历史)。可以通过移动HEAD来达到撤销效果。这里有几个参数:
    git reset --soft <commit ID> 将HEAD指向目标点,不改变暂存区和工作目录。
    git reset --mixed <commit ID> 移动HEAD,改变暂存区,工作目录不变(默认选项,效果和 git reset <commit ID> 一样)。
    git reset --hard <commit ID> 移动HEAD,改变暂存区,工作目录也改变。
    上面说的改变,是指暂存区或者工作目录原来的文件会被删除,取而代之的是,用HEAD重新指向的快照填充覆盖。注:git reflog 命令可以显示我们放弃的commit,也就是reset操作之后,通过 git log 看不到的那些快照。

七、添加忽略文件

  • 忽略文件的名称为 .gitignore

  • GitHub 有一个十分详细的针对数十种项目及语言的 .gitignore 文件列表,你可以在 https://github.com/github/gitignore 找到它。

注意事项

  • git 命令中使用通配符 * 号: 比如,我们要log/ 目录下扩展名为 .log 的所有文件,按理来说,应该是:git rm log/*.log 。但是,因为 Git 有它自己的文件模式扩展匹配方式,所以我们不用 shell 来帮忙展开。因此,如果我们想用通配符,要这么写:git rm log/\*.log

相关文章

  • 01_Git 命令列表

    时间:2018-04-13 作者:魏文应 说明 这个文档适合已经会使用git,但又经常遗忘一些指令的读者。也就是这...

  • 01_Git重要命令实操

    Git的基本东西其实不需要再去强调了,我们应该在实际操作的过程中慢慢了解其工作的原理,工具的学习是为了更好的工作,...

  • Redis 列表(List) 命令

    Redis 列表(List) 命令 下表列出了列表相关的基本命令: 1> blpop 命令:移出并获取列表的第一个...

  • 01_Git 的安装及使用

    01_Git的安装及使用 @Author Jacky Wang开源精神,转载请注明出处 https://www.j...

  • Linux_常用命令总结

    命令:pwd 查看当前目录 命令:cd 用户相关 用户列表文件:/etc/passwd 用户组列表文件:/etc/...

  • git简单使用命令集合

    查询类 git help (git --help) 查询所有命令列表 git help -a 展示所有命令列表 g...

  • mysql表数据操作

    插入数据 命令格式:insert [into] 表名(字段列表)values(值列表),(值列表),.... ex...

  • 好友系统 说明:使用命令打开玩家好友列表 相关命令pr friend list 打开玩家列表pr fr...

  • redis基础命令

    全局命令 列表 哈希 集合

  • Linux 命令行使用教程

    Linux命令行的一般格式 命令 [长选项列表] [短选项列表] [参数列表] 其中,长选项是指以双横线引导的选项...

网友评论

      本文标题:01_Git 命令列表

      本文链接:https://www.haomeiwen.com/subject/tmnqkftx.html