博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git常用命令
阅读量:6970 次
发布时间:2019-06-27

本文共 4000 字,大约阅读时间需要 13 分钟。

hot3.png

日常工作中对版本控制工具的熟练使用,是很有必要的。下面是我工作中一些经常使用用的git命令:

1.查看git帮助

git config --global alias.ci commit  

   $ git help <verb>  

   $ git <verb> --help  
   $ man git-<verb> 

2.git log -p -2

   我们常用 -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新:

3.git log --stat

   git log 还提供了许多摘要选项可以用,比如 --stat,仅显示简要的增改行数统计:

4.git log -U1 --word-diff

   git 提供了 --word-diff 选项。我们可以将其添加到 git log -p 命令的后面,从而获取单词层面上的对比

5.git fetch 和 git pull 区别

   git pull:相当于是从远程获取最新版本并merge到本地

   git fetch:首先从远程的origin的master主分支下载最新的版本到origin/master分支上

   git pull = git fetch + git merge

6.本地提交代码到远程

   git push origin 当前分支:远程分支

   如:git push origin deve:wt

   
7.查看服务器分支:git branch -av

8.git简化命令配置

    $ git config --global alias.co checkout  
    $ git config --global alias.br branch  
    $ git config --global alias.ci commit  
    $ git config --global alias.st "status -s"  
    $ git config --global alias.l "log --oneline -decorate -12 --color"
    $ git config --global alias.ll "log --oneline —decorate --color"

    然后就可以用git co ,git br, git st等这些配置过的简化命令了

9.查看某次历史修改
   git show commitId

10.查看远程分支

   git remote show origin

 

11.删除服务端和本地没有引用的分支,也就是同步服务端和本地的分支

   git fetch -p
   or
   git remote show origin

 

12.git push -u和git branch --set-upstream-to指令之间的区别

举个例子:我要把本地分支master与远程仓库origin里的分支gaga建立关联。
(如果使用下列途径1的话,首先,你要切换到master分支上(git checkout master))
两个途径:1. git push -u origin gaga 2. git branch --set-upstream-to=origin/gaga master
这两种方式都可以达到目的。但是1方法更通用,因为你的远程库有可能并没有gaga分支,这种情况下你用2方法就不可行,连目标分支都不存在,怎么进行关联呢?所以可以总结一下:git push -u origin gaga 相当于 git push origin gaga + git branch --set-upstream-to=origin/gaga master

 

13.git merge dev

把dev分支merge到当前分支

 

14.git reabse

这个用法一两句说不清楚,需要举例子比较号说明,可以看看这个http://www.cnblogs.com/hydah/archive/2012/04/10/2440220.html

 

15.git revert

  我们难免会因为种种原因执行一些错误的commit / push,git提供了revert命令帮助程序员修复这样的错误。

  git revert 命令会通过一个新的commit 来使仓库倒退一个commit.

  git revert HEAD revert 当前分支最新的commit

$ git revert HEAD~1fatal: Commit 137ea95 is a merge but no -m option was given.

 对于revert merge的情况,程序员需要指出revert 这个merge commit中的哪一个。通过-m或者--mainline参数,以及配合一个整数参数,git就知道到底要revert哪一个merge。我们先来看一下要revert的这个merge commit:

$ git log HEAD~1 -1commit 137ea95c911633d3e908f6906e3adf6372cfb0adMerge: 5f576a9... 62db4af...

如果使用git revert HEAD~1 -m 1命令,也就是5f576a9,使用-m 2会revert第二个commit,也就是62db4af。

自动生成的comment也会标示revert的是merge里的哪一个commit。

直接revert一次merge提交:

git revert f67024f9df95bb8fb01228ce596e7c33ccef1753 -m 1

 

16.git reset和 git revert目的都是要代码回退,但是区别:

      git reset 是后退commit来保证代码回退

      git revert是前进用一个新的commit来保证代码回退

17.git cherry-pick 

   在本地master提交了一个commit(c41e06a993628ad6175dbe70f17f55f772aaaba1),如何提交的develop分之上?

   用法:

git cherry-pick 

   git checkout develop

   git cherry-pick c41e06a993628ad6175dbe70f17f55f772aaaba1

如果顺利,那么已经提交develop版本。

 如果提示冲突:

$ git statusOn branch developYour branch is up-to-date with 'origin/develop'.You are currently cherry-picking commit 0e82d79.  (fix conflicts and run "git cherry-pick --continue")  (use "git cherry-pick --abort" to cancel the cherry-pick operation)Unmerged paths:  (use "git add 
..." to mark resolution) both modified: test_1.txt

解决冲突,然后提交,就可以了。

18.把本地代码push其他仓库

  git push -f git@git.n.xiaomi.com:test-1/access-common.git newmast:master

 即把当前代码库的newmast分支上的代码push到git@git.n.xiaomi.com:test-1/access-common.git远程的 master分支上

19.查看指定文件某行代码的最新修改记录

    git blame filename

a798306c (jgang 2015-08-13 15:41:24 +0800  84)                 
086574e6 (qtao 2015-10-20 20:30:47 +0800 85)
086574e6 (qtao 2015-10-20 20:30:47 +0800 86)
SECONDS
086574e6 (qtao 2015-10-20 20:30:47 +0800 87)

20.

git log --graph --decorate --oneline --simplify-by-decoration --all

说明:

--decorate 标记会让git log显示每个commit的引用(如:分支、tag等) 

--oneline 一行显示

--simplify-by-decoration 只显示被branch或tag引用的commit

--all 表示显示所有的branch,这里也可以选择,比如我指向显示分支ABC的关系,则将--all替换为branchA branchB branchC

21.添加remote 把当前代码推送到新的remote,新的代码分支为remoteTest.

git remote add github git@github.com:wangtao1/raven-java.git

git push github mast:remoteTest

22.删除remote

 git remote remove github

转载于:https://my.oschina.net/mindfind/blog/775279

你可能感兴趣的文章
网站安全检测之图片验证码
查看>>
PB 级数据处理挑战,Kubernetes如何助力基因分析?
查看>>
vue cle新建vue项目
查看>>
配置网络、远程登录
查看>>
阿里架构师干货分享——eureka分布式框架demo
查看>>
GitHub十周岁HanLP自然语言处理包用户量超越CoreNLP
查看>>
Pycharm上Django的使用 Day2
查看>>
5.22-zabbix监控Nginx
查看>>
JVM基础系列开篇:为什么要学虚拟机?
查看>>
unicode字符串转list的方法
查看>>
OSChina 周五乱弹 —— 草莓味的唇膏是什么味道?
查看>>
OSChina 周三乱弹 ——纪念Bob Taylor
查看>>
OSChina 周一乱弹 ——爱丽三个小时没吃鱼罐头了
查看>>
OSChina 周六乱弹 ——程序员还是大学生的时候 带啥去上学
查看>>
PHP Web服务出现</SOAP-ENV:Envelop -> Misses the la...
查看>>
大整数类
查看>>
nginx在linux环境下安装
查看>>
笨兔兔的故事——带你了解Ubuntu,了解Linux 第九章 邻居
查看>>
ubuntu中安装hadoop集群
查看>>
14_02_Linux系统启动流程详解之二 内核及init
查看>>