git命令使用总结

一.
分支
$ git branch
//查看本地分支
* master
$ git branch -r
//查看远程分支
 origin/HEAD -> origin/removal
 origin/master
 origin/removal
$ git checkout -b
 removal  origin/removal
//新建本地分支并切换到远程分支上

$git branch -d
//删除分支

二.
克隆
$ git clone
~/workspace/study/tmp.git //克隆本地仓库

三. 补丁
$ git format-patch -1 de4f9255d
//生成补丁,参数分别代表生成几个补丁和commit ID
$ git apply --check
//检查patch能否被打上
$ git apply
001.patch
$ git am 001.patch //apply &
mail

四.
Rebase
1. 创建仓库:$ git --bare init
tmp.git
$ ls tmp.git
branches config description gitk.cache HEAD hooks info objects refs
2.
克隆这个仓库:clone-1$
git clone ~/workspace/study/tmp.git
clone-1$ ls
tmp
3. 再克隆一个:clone-2$ git clone ~/workspace/study/tmp.git
clone-2$ ls
tmp
4.
修改clone-1中的文件MAINTAINERS,并commit,再push
origin master提交到远程master分支
5. 修改clone-2中的文件MAINTAINERS,并commit,此时push会失败,需进行rebase操作后再push,如下:
$ git fetch
origin
$ git rebase
origin/master
$ git push
origin  //upstream branch可不填,默认是和本地分支对应的远程分支
$ gitk //图形化查看git log

图1-1
看上图1-1,通过对比红线以上和以下的历史信息可充分看出rebase和git
pull(merge)的区别, clone……
的信息,是clone-1分支上的提交,clone2……是clone-2上的提交,无论哪个分支先push进origin
master,后面的提交者,先rebase
origin/master,然后再push,就形成了红线上方的提交历史,很清晰,只基于一条主线。

6. 注意事项:
修改统一个文件,如果修改的是统一个地方,rebase会conflict,即便你觉得没有修改同一行,但是修改的上下文有重叠也会被认为冲突。

五.
git log / gitk
$ git log --author="somebody" //查看作者名为somebody的提交历史
$ git log <文件名>/<目录名> //查看某个文件/目录的提交历史

六.
git diff

$ git
diff           (1)
      $ git diff --cached  (2)
      $ git diff
HEAD      (3)

1. Changes in the working tree not yet staged for the next
commit.
   显示当前目录下修改的但还没有缓存(git add添加到Index中)的文件.
2. Changes between the index and your last commit; what you would
be committing if you run "git commit" without "-a"
option.
  当前Index中的和上一次commit之间的修改; 也就是你下一次commit将会提交的内容,假设你不在git
commit加-a选项(-a表示自动commit所有修改或者删除的文件)
 3. Changes in
the working tree since your last commit; what you would be
committing if you run "git commit -a"
    从上一次commit开始,当前目录下的修改(不管修改的文件有没有被缓存,都会列出来)
 
      
 Comparing with arbitrary
commits——比较任意的commit之间的修改
              $ git diff
test           (1)
              $ git diff HEAD -- ./test (2)
              $ git diff HEAD^
HEAD     (3)

1. Instead of using the tip of the current branch, compare with the
tip of "test" branch.
   不与当前branch进行比较,而是与test branch进行比较
2. Instead of comparing with the tip of "test" branch, compare with
the tip of the current branch, but limit the comparison to the file
"test".
   比较当前branch的上一个commit中的./test文件和当前目录下的./test文件的修改
3. 比较上一个commit和上上一个commit之间的修改.

Comparing branches——branch之间比较

$ git diff topic
master   (1)
              $ git diff topic..master  (2)
              $ git diff topic...master (3)

1. Changes between the tips of the topic and the master
branches.
   比较topic
分支和master分支之间的不同
2. Same as above.
   同上。
3. Changes that occurred on the master branch since when the topic
branch was started off it.
   比较topic分支从master分出来之后,topic上有哪些修改

更多git diff例子,参照git diff --help

七. git rm --cache //只从index中删除,不删除本地文件
八. git reset HEAD^
回退单独的文件,如果已经提交commit,但是想在这个commit中去掉某个文件,可以单独回退这个文件
九.回退后的文件,用git status 查看,显示为已经更改,没有add到index中,如果想撤销更改,可以:
git checkout

九. git rebase HEAD^ --onto v3.18-rc1

将 HEAD^ rebase到 v3.18-rc1,HEAD^后面的commit会基于v3.18-rc1。

时间: 2024-08-26 13:52:09

git命令使用总结的相关文章

windows下git命令的使用

一.写在前面 关于git,出于自己的爱好,前段时间玩了一下,也自己上网查了一下资料,现简单记录一下,以备查看. 当然,本文并不是介绍配置git服务器的文章,而是以github服务器作为git的远程仓库服务器. 二.安装 windows下使用git,需要安装msysGit,下载地址是https://code.google.com/p/msysgit/downloads/list; 安装完成后,在安装目录下,有个msys.bat文件,这个就是msysGit提供的命令行客户端: 当然就像svn一样,也

常用 Git 命令清单

我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-nam

Git命令执行漏洞

Git命令造成的反弹shell 漏洞描述: Git LFS可以.lfsconfig使用LFS由存储库中的文件配置(部分),并且可以将Git LFS指向ssh://. [lfs] url = ssh://-oProxyCommand= some-command 当使用这样的.lfsconfig文件克隆存储库时,使用LFS插件的Git将尝试调用ssh以从主机获取LFS对象 -oProxyCommand=some-command.然而,SSH会将该主机名解释为一个-o选项,并随后尝试调用some-co

git命令行使用

1. git命令行配置 1)安装完git客户端之后,在任意目录右键鼠标,选择Git GUI Here 2)在打开的窗口中依次选择Help->> Show SSH Key 2)如果弹出的窗口中中间部分没有key,可以点击 Generate Key 按钮,生成key,然后将生成的key拷贝一下,添加到gitlab中即可. 2. 命令使用 1)下载代码 在存放代码的目录中,右键鼠标,选择 Git Bash Here,然后会打开终端窗口 输入: git init   创建git配置目录 输入下面命令,

常用 Git 命令清单 转

我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-nam

常用 Git 命令清单【转】

转自:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html 作者: 阮一峰 日期: 2015年12月 9日 我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:

git命令评测

近日得知git命令在库进行操作,查找git尽管小命令(当然,也不能太小),但他们是一个非常强大的组合,更重要的是,它是非常的效果不同状态的命令是不一样的打.该博文总结git命令.. Git命令 命令小结 命令 功能 git init 把当前目录初始化为默认的git库 git add 文件名称 向git库中加入一个文件 git rm 文件名称 从git库中删除一个文件 git status 查看当前库中进行的任务 git diff 文件名称 add前查看工作区和暂存区的区别 git commit

我总结的git命令指南。

git命令行指南 1.windows上安装git的网址:http://msysgit.github.com/. 没有安装过git的 这个网址里下mymsgit. 因为发现有些同学对git还不是那么熟悉,所以我分享一下一下我自己整理出来的常用的git的命令行指令. 对了.对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged).已提交表示该文件已经被安全地保存在本地数据库中了:已修改表示修改了某个文件,但还没有提交保存:已暂存

常用Git命令汇总

常用Git命令汇总 跟着R哥来到了新公司(一个从硬件向互联网转型中的公司),新公司以前的代码基本是使用SVN做版本控制,甚至有些代码没有做版本控制,所以R哥叫HG做了一次Git分享,准备把公司所有的代码用Git作版本控制.平时自己虽然天天使用Git,但是总感觉知识有些零散,于是汇总了一些常用的Git命令. 常用配置 --system #系统级别 --global #用户全局 --local #单独一个项目 git config --global user.name "xxxx" #用户

Git 命令 三

如何记住密码: https方式每次都要输入密码,按照如下设置即可输入一次就不用再手输入密码的困扰 当出现提示输入密码,且输入了密码,完成了一次Git命令操作之后,输入以下命令: 1.设置记住密码(默认15分钟): git config --global credential.helper cache 2.如果想自己设置失效时间,可以这样做: git config credential.helper 'cache --timeout=3600' #这样就设置一个小时之后失效(单位是秒) 3.想永久