zoukankan      html  css  js  c++  java
  • 【git】git常用命令

    目前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/hotfix/pifu
    git push origin :hotfix/pifu

    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.2345.cn.git (fetch)
    origin  git@172.16.XX.245:OA/ae.oa.2345.cn.git (push)
    
    songgq@LP1457 MINGW64 ~/Desktop/opt/case/ae.oa.2345.cn (master)
    $ git remote set-url origin git@172.16.0.245:OA/ae.2345.cn.git    #修改拉取远端地址
    
    songgq@LP1457 MINGW64 ~/Desktop/opt/case/ae.oa.2345.cn (master)
    $ git remote -vv
    origin  git@172.16.XX.245:OA/ae.2345.cn.git (fetch)
    origin  git@172.16.XX.245:OA/ae.2345.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 
    51. 允许提交包含混合换行符的文件
     git config --global core.safecrlf false

    52. 颠覆 Git 命令使用体验的神器  tig

         在 Git 项目中敲 tig, 进入 tig 界面后再敲 h (代表help) 即可进入帮助界面, 该界面列出了所有常用命令项目分支下直接敲 tig, 进入到了 log 界面,如下。

      

        参考链接:https://www.jianshu.com/p/e4ca3030a9d5

  • 相关阅读:
    Android零碎知识之Style and Theme
    Java 线程池(一):开篇及Executor整体框架介绍
    ADB命令笔记本
    volatile变量理解 via《Java并发编程实战》
    Java NIO
    乱七八糟(一)
    Android事件分发机制
    AndroidStudio下的依赖管理
    shell--填过的坑
    兼容类问题
  • 原文地址:https://www.cnblogs.com/songgj/p/8436309.html
Copyright © 2011-2022 走看看