Git常用命令

Git学习笔记😷

git配置

  1. 使用git config进行配置(配置文件三种不同的存储位置)

  2. 用户信息

    1
    2
    git config --global user.name "haitao"
    git config --global user.email "haitao.hjc@gmail.com"
  3. 检查配置信息

    1
    2
    git config --list
    git config user.name
  4. 获取帮助

    1
    2
    3
    4
    5
    git help <verb>
    git <verb> --help
    man git-<verb>
    //获取config的帮助手册
    git help config

git基础

  1. 获取git仓库

    1
    2
    git init
    git clone
  2. 检查当前文件状态

    1
    2
    git status
    git status test.txt
  3. 跟踪新文件

    1
    2
    git add README
    git add *
  4. 暂存已修改文件

    1
    2
    git status
    git add modified.md
  5. 状态简览

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    git status --short
    //或者
    git status -s

    //输出示例
    $ git status -s
    M README
    MM Rakefile
    A lib/git.rb
    M lib/simplegit.rb
    ?? LICENSE.txt

    注:
    '??'表示新添加的跟踪文件;
    'A '表示新添加到暂存区中的文件;
    ' M'出现在右边的M表示该文件被修改了但是还没放入暂存区,比如commit之后进行的修改;
    'AM'表示添加暂存区之后被修改了,比如哦add之后进行的修改;
    'M '出现在左边的M表示该文件被修改了并放入了暂存区,比如在commit之后进行修改并且将修改保存到暂存区;
    'MM'这种情况出现在commit之后进行修改,并将修改保存到暂存区,然后再对文件进行修改。
    ' D'表示保存到暂存区或者commit之后的文件从磁盘被删除。
    'R '表示commit之后,文件被renamed。

  6. 忽略文件
    一般创建一个.gitignore的文件,列出要忽略的文件模式。具体规则无需记忆,GitHub上有一个十分详细的针对数十种语言的.gitignore文件列表

  1. 查看已暂存和未暂存的修改
    git status显示了哪些文件被修改了,而git diff则通过文件补丁的格式显示具体哪些行发生了改变。
    如果要查看已暂存的将要添加到下次提交里的内容,可以使用git diff --cached或者git diff --staged,二者效果相同。
  1. 提交更新

    1
    git commit -m "message"
  2. 跳过使用暂存区域
    git commit加上-a选项。

  1. 移除文件
    确切的说,是从暂存区移除文件,然后提交。依次执行如下命令:

    1
    2
    3
    rm -rf test.md
    git rm -rf test.md
    git commit -m "del"

    还有一种情况是把文件保留在磁盘中,但是从暂存区中删除,比如有时候不小心将很大的日志文件添加到暂存区。

    1
    git rm --cached output.log
  2. 移动文件
    对于暂存区中的文件可以使用

    1
    git mv file_from file_to
  3. 查看历史提交记录

    1
    2
    3
    4
    5
    6
    git log
    //最近的更新排在最上面。

    //还有其它,比如:
    git log -p -2
    git log --stat

    除此之外,git log还有很多格式化提交记录信息的方式。比如可以限制输出长度或者限制在一定时间范围内。

  4. 撤销操作
    情景一:有时我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了,这是可以用:

    1
    git commit --amend

    例如:你提交后发现忘记了暂存某些需要的修改,可以这样操作:

    1
    2
    3
    git commit -m "init"
    git add forgotten_file
    git commit --amend

    执行最后一条命令后会弹出编辑器,然后在里面修改提交信息。编辑后保存会覆盖原来的提交信息。最终只会有一个提交记录。

  5. 取消暂存的文件

    1
    git reset HEAD <file>
  6. 撤销对文件的修改

    如果不想保留对文件的修改的,将他还原成上次提交时的样子。(针对修改后还未保存到暂存区的文件)

    1
    git checkout -- <file>

远程仓库

  1. 查看远程仓库

    1
    2
    3
    git remote
    //或者
    git remote -v
  2. 添加远程仓库

    1
    2
    3
    git remote add <shortname> <url>
    //eg
    git remote add origin https://github.com/lihtao/test.git
  3. 从远程仓库中抓取与拉取

    1
    git fetch [remote-name]

    这个命令将会从远程分支拉取所有你还没有的数据(包括所有分支)。所以git fetch会抓取上一次抓取之后新推送的所有工作。但是并不会自动合并或修改你当前的工作,必须进行手动合并。
    git pull这个命令则是自动抓取然后合并远程分支到当前分支。另外,如果你clone一个仓库,会自动将其添加为远程仓库并默认以origin为简写。

  4. 推送到远程仓库

    1
    git push origin master
  5. 查看某个远程仓库

    1
    git remote show origin

    这个命令列出了当你在特定的分支上执行git push会自动地推送到哪一个远程分支。它也同样地列出了哪些远程分支不在你的本地,哪些远程分支已经从服务器上移除了,还有当你执行git pull时哪些分支会自动合并。

  6. 远程仓库地移除与重命名

    如果想要重命名引用的名字可以运行git remote rename取修改一个远程仓库的简写名。例如,将origin重命名为paul:

    1
    git remote rename origin paul

    如果要从服务器上移除一个远程仓库:

    1
    git remote rm paul

参考:https://git-scm.com/book/en/v2


Donate comment here
-------------本文结束感谢您的阅读-------------
0%