目前git版本控制很多公司都在用,我把平时的使用做些记录,防止忘记。

1. 有时候分支比较多,我们会基于master建立一个新分支开发,有时候也会基于别的分支建立,但时间长了可能会忘记当前分支是基于哪个分支建的。

比如基于Kyhome这个分支建立kytest

然后我们可以这样查

git reflog --date=local | grep kytest

显示

2.显示所有提交过的版本信息

git log

如果想换个显示方式可以加上参数--pretty=oneline

git log --pretty=oneline

退出按q

3.撤销工作区某个文件修改

git checkout -- 文件路径

操作如下

然后修改的文件就被还原了。

如果想撤销暂存区的文件可以用git reset HEAD

这样这个文件又回到工作区了。

4.显示日志

  1. git log --pretty=oneline -3 最近3个commit
  2. git log --pretty=oneline --after="2018-02-08" 按日期可以使用--after或--before来按照日期筛选
  3. git log --pretty=oneline --author='xxx' 按作者
  4. git log -- ./new_src/app/Http/Routes/Frontend/Access.php 查看某个文件所有记录
  5. git log -p 显示所有文件每次提交的diff
  6. git log -p ./new_src/app/Http/Routes/Frontend/Access.php 查看某个文件修改历史
  7. git show 2b665a555e3cc8c5baebb35422d2e71b0516914b33a  Access.php 查看某个文件最近变化内容
  8. git show eb88d15634c98aa9b6e160e9fc16883729d40a17 查看某次commit所有修改的内容

5.显示commit图

git log --graph

6.查看某行代码谁写的

git blame Access.php

7.查看配置信息

git config --list

8.git中有些文件是中文名 但是显示是不能正确显示成中文,通过以下命令修改。

git config --global core.quotepath false

之前

之后

9.比较工作区和暂存区的变动

git diff

git diff -- stat命令的功能是统计哪些文件发生了改变,有多少行产生了修改,不会给出改动的具体内容。

10.看出分支上的递交状况

git show-branch

11.显示本地和远程所有分支

 git branch -va   v参数显示分支最新修改注释

 

12.修改本地分支名

git branch -m old_feature new_feature

 13.删除本地分支

 git branch -D kytest_new

14.删除远端分支

 git branch -d -r  origin/kytest

15.删除远端分支刷新

git remote prune origin

16.查看远端分支

git branch -r

 17.创建分支并切换

 git checkout -b new_feature
git checkout -b 本地分支 origin/远端分支

 18.对比两个分支内容情况

查看app_kyhome分支比master分支多提交哪些内容

 git log app_kyhome ^master

 

 19.对比两个分支文件变更的列表

git diff  app_kyhome  master --stat

  

 20.对比两个分支具体文件变化情况

git diff app_kyhome master new_src/app/Http/Routes/Frontend/Access.php

  

 21.对比显示两个分支详细变化情况

git diff app_kyhome master

  

 22.把XX文件在工作区的修改全部撤销。

git checkout -- XX 文件路径

  

23.查看git命令信息

git命令那么多,有时候我们并不知道某些命令的用途,这时候可以查看命令帮助查看命令用途。

先查看命令列表

git help -a

  

然后我们想看具体的命令什么意思,比如init参数,可以用-h帮助

git init -h 

24.显示HEAD提交日志

git show HEAD

25.显示上一个版本提交日志 

git show HEAD^

  ^^为上两个版本。

 

26.显示某个分支昨天的情况

git show app_kyhome@{yesterday}

  

27.显示git index中的所有文件

git ls-files

  

 28.git暂时储藏

有时候当我们在一个分支上想切换到另一个分支,可是这个分支有修改的文件没提交,如果此时切换分支,会报下面错误

这时候我们可以用git stash命令来暂时存储当前分支修改文件的状态。先看下面文件状态。

使用命令

这时候你就可以切换到别的分支了。

要查看现有的储藏,可以使用下面命令查看。

当想回到之前的分支继续开发,那么可以使用git stash apply,之前的修改文件就会又回来了。

还有种情况,就是想pull 最新代码, 但是当前有修改代码,提示当前分支会被merge,但又不想加commit。也可以用git stash

然后在

git stash pop

分支修改的代码就出现了。其实上面两个都是一个道理。

29.创建忽略文件

先设置全局全局忽略文件配置

git config --global core.excludesfile ~/.gitignore

然后在

touch  .gitignore

这样将要忽略的文件写入该文件中,比如文件编辑器的.idea等

30.将本地分之推送到远端分支

git push origin 本地分之名:远端分之名

31.将远端分支拉取到本地(本地不存在这个分支)

git pull origin 本地分支:远端分支

 32.查看本地分支和远程分支的关联关系

 git branch -vv

33.关联本地分钟与远端分支

git branch --set-upstream-to=origin/远程分支的名字  本地分支的名字

34.合并分支

git merge 分支名    将分支合并到当前分支

35.查看远端地址

git remote -v

 36.丢弃所有修改

git checkout .

37.add添加文件内容到暂存区

git add 文件夹/            添加整个目录及其内容
git add *.文件类型 添加目录中所有此文件类型的文件

注意:git add .  和 git add -u区别

1.git add .  会监控整个工作区的状态 ,使用它会把所有文件变化都提交到暂存区,不包括删除的文件。

2.git add -u :它仅监控已经被add的文件(tracked file),它会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。

git add -u 只能添加index.php 文件

  git add .  新文件都可以提交

   git  add .  这个命令还有个主要的地方是需要在根目录执行,不能在子目录,不然有些其他目录更改的文件没法add。

38.展示本地分支和远端分支关联情况

git branch -vv

39.   .gitkeep

  这个文件是为了可以提交空的文件夹

40. git tag  创建标签

列出所有标签

git tag <feature_name> 给分支打标签

41.查看分支创建时间

 git reflog show --date=iso 分支名

该命令会显示这个分支从创建到现在的commit信息,最下面一条就是分支最早记录,并显示时间

42.删除本地有但在远程库已经不存在的分支

git remote prune origin

43.git修改远程仓库地址

$ git remote -vv
origin git@172.16.XX.245:OA/ae.oa..cn.git (fetch)
origin git@172.16.XX.245:OA/ae.oa..cn.git (push) songgq@LP1457 MINGW64 ~/Desktop/opt/case/ae.oa..cn (master)
$ git remote set-url origin git@172.16.0.245:OA/ae..cn.git #修改拉取远端地址 songgq@LP1457 MINGW64 ~/Desktop/opt/case/ae.oa..cn (master)
$ git remote -vv
origin git@172.16.XX.245:OA/ae..cn.git (fetch)
origin git@172.16.XX.245:OA/ae..cn.git (push)

44.git远程仓库强制覆盖本地

git fetch --all && git reset --hard origin/master && git pull

45.保存之前分支历史

git merge --no-ff

46.设置换行符

git config --global core.autocrlf false

47.对比本地分支和master分支提交日志差异

  1)查看本地分支有,而 master 中没有的

git log 本地分支名 ^master

2)查看master有,而本地分支中没有的

git log  master ^本地分支名

48.查看已经合入当前分支的所有分支

git branch --merged 

49.查看没有被合入当前分支的所有分支

git branch --no-merged

50.更新远程分支的本地列表 

git remote update origin --prune 

【git】git一些命令使用记录的更多相关文章

  1. 使用方便git命令检查记录的版本号

    现在开始git大多数用户都经历过subversion,对于这两种开关的版本控制系统需要一段时间去适应.本文旨在帮助恢复一些,这些用户都熟悉的日志记录买家的习惯. 我们要熟悉一个详细的例子git中log ...

  2. Git的常用命令记录

    Git的常用命令记录 1.与远程仓库建立连接,即关联一个远程库 git remote add origin git@server-name:path/repo-name.git; 2.查看当前分支  ...

  3. 速刷git<一> 常用命令记录

    git config  --list 列出配置  --local 对某个仓库有效  --global 对当前用户的所有仓库有效  --system 对系统所有登录用户有效git reset  --ha ...

  4. windows中 git 命令使用记录

    建议国内开发安装淘宝npm镜像cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org 或者每次执行安装时 npm ins ...

  5. Git 命令操作记录

    1.安装完git软件之后(win系统的) 1)配置用户名密码: 设置本地机器默认commit的昵称与Email. 请使用有意义的名字与email. git config --global user.n ...

  6. git log 常用命令及技巧

    git log常用命令以及技巧 1.git log 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者.提交日期.和提交说明.如果记录过多,则按Page Up.Pag ...

  7. Git的安装和使用记录

    Git是目前世界上最先进的分布式版本控制系统(没有之一),只用过集中式版本控制工具的我,今天也要开始学习啦.廖雪峰的git教程我觉得很详细了,这里记录一下步骤以及我终于学会用Markdown了,真的是 ...

  8. git workflow常用命令

    git init git status git add readme.txt git add --all         Adds all new or modified files git comm ...

  9. git的一些命令

    因为项目的原因,大家把项目托管到git上,然后我不会,队友就传了一个廖雪峰的git教程,讲的很详细,不会用git的同学,可以在http://pan.baidu.com/s/1pKizolP上下载,这是 ...

随机推荐

  1. No enclosing instance of type is accessible. Must qualify the allocation with an enclosing instance of type LeadRestControllerTest (e.g. x.new A() where x is an instance of ).

    java - No enclosing instance is accessible. Must qualify the allocation with an enclosing instance o ...

  2. Jenkins [Error] at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:192)

    Deploying /root/.jenkins/workspace/zgg-crm-pre/target/crm.war to container Tomcat 7.x Remote with co ...

  3. 渗透测试平台bwapp简单介绍及安装

    先来介绍一下bwapp bwapp是一款非常好用的漏洞演示平台,包含有100多个漏洞 SQL, HTML, iFrame, SSI, OS Command, XML, XPath, LDAP, PHP ...

  4. iOS 10的两个坑

    iOS 10出现白屏幕,其他机型不会. 一个bug 手机连上电脑,在电脑端的Safari里,看到了如下的错误: SyntaxError: Cannot declare a let variable t ...

  5. react插件包

    react-scoped-style support ie8,ie8+,chrome,firefox,safari does not support css priority (just apply ...

  6. oracle一些单记录函数

    单记录函数 1.0 NVL() 作用:从两个表达式返回一个非NULL值 用法:NVL(表达式1, 表达式2) 如果表达式1的结果不为NULL,返回表达式1的结果:如果表达式1的结果为NULL,返回表达 ...

  7. MySQL 查询语句中自己定义的中文内容在Java Web 中显示为问号

    Java Web 端做查询时,性别字段存的是数字,1代表男,2代表女,取数据时将性别转为汉字显示在页面,sql语句如下,结果发生了问题  select a.emp_id,a.emp_name ,cas ...

  8. Thread(生产者和消费者) wait、notify、notifyAll

    在java中,线程间的通信可以使用wait.notify.notifyAll来进行控制.从名字就可以看出来这3个方法都是跟多线程相关的,但是可能让你感到吃惊的是:这3个方法并不是Thread类或者是R ...

  9. Azure系列2.1.1 —— BlobContainerPermissions

    (小弟自学Azure,文中有不正确之处,请路过各位大神指正.) 网上azure的资料较少,尤其是API,全是英文的,中文资料更是少之又少.这次由于公司项目需要使用Azure,所以对Azure的一些学习 ...

  10. 认识SQL

    一.SQL介绍 SQL 是用于访问和处理数据库的标准的计算机语言. i.What? SQL 指结构化查询语言 SQL 使我们有能力访问数据库 SQL 是一种 ANSI 的标准计算机语言 ii.How? ...