美文网首页deep-js
git命令行完全解读

git命令行完全解读

作者: echo_me | 来源:发表于2018-04-03 13:02 被阅读14次

BY 张建成(prettyEcho@github)

除非另行注明,页面上所有内容采用知识共享-署名(CC BY 2.5 AU)协议共享

原文地址deep.js , 欢迎 评论star

<p style="color: rgb(253,201,11);" align="center">🐬🐬 欢迎评论和star 🐳🐳</p>

git命令行

  1. git clone

    • 用于将远端仓库拷贝到本地
    • ssh: git clone username@host:/path/to/repository
    • https: git clone https:/path/to/repository.git
  2. git config

    • 这个命令定义了所有配置,从用户信息到仓库行为等等
    • git config --global --edit : 编辑器打开配置文件
    • git config --global user.name : 配置提交的用户名
    • git config --global user.email : 配置提交的邮箱
  3. git add

    • 将本地工作区(Working dir)改变提交到缓存区(Index)
    • git add <file> : 提交确定文件
    • git add * : 提交所有更改
    • git add -A : 提交tracted和untracted中的文件提交到缓存区
    • git add -u : 提交tracted中的文件提交到缓存区
    • git add -p : 交互式提交
  4. git commit

    • 将缓存的快照提交到项目历史
    • git commit -m "<message>" : 提交已经缓存的快照。它会运行文本编辑器,等待你输入提交信息。当你输入信息之后,保存文件,关闭编辑器,创建实际的提交。
  5. git status

    • 列出已缓存、未缓存、未追踪的文件(缓存区和工作区文件状态)
    • Changes to be committed: 文件在缓存区
    • Changes not staged for commit: 在工作区已经追踪的文件
    • Untracked files: 在工作区未追踪的文件
  6. git pull

    • 拉取并合并远端项目(默认拉取marter项目)
  7. git push

    • 推送本地git到远端
    • git push
    • git push origin <branch>: 推送本地git到远端某个分支
    • git push --set-upstream origin <branch>: 创建远端分支并推送代码
  8. git log git

    • 命令显示已提交的快照
  9. git checkout

    • 这个命令有三个不同的作用:检出文件、检出提交和检出分支

    • 提交层面

      • 移动HEAD指针到固定的提交
      • git checkout HEAD~2
      • git checkout <commit>
    • 文件层面

      • 用提交版本中的文件覆盖本地工作区的文件
      • git checkout HEAD~2 test.txt
      • git checkout HEAD <file> (常用)
        <p style="text-align: center">
        <img src="https://user-gold-cdn.xitu.io/2018/4/3/16289af9f0f6849d?w=800&h=426&f=png&s=35338" alt="checkout-file" style="width: 40%">
        </p>
    • 分支层面

      • 切换分支
      • git checkout <branch>
  10. git reset

    • 修改提交版本,会删除提交历史(一定要谨慎),切记当把提交推送到远端后,禁止使用git reset

    • 提交层面

      • git reset --soft HEAD~2
      • git reset --soft <commit>

    <p style="text-align: center">
    <img src="https://user-gold-cdn.xitu.io/2018/4/3/16289af9f10c5b5e?w=800&h=1190&f=png&s=50577" alt="reset" style="width: 40%">
    </p>

除了在当前分支上操作,你还可以通过传入这些标记来修改你的缓存区或工作目录:

    * --soft – 缓存区和工作目录都不会被改变
    * --mixed – 默认选项。缓存区和你指定的提交同步,但工作目录不受影响
    * --hard – 缓存区和工作目录都同步到你指定的提交
     
<p style="text-align: center">
    <img src="https://user-gold-cdn.xitu.io/2018/4/3/16289af9f0edc02b?w=800&h=550&f=png&s=30152" alt="reset-scope" style="width: 40%">
</p>
    
常用操作:

    * git reset --mixed HEAD / git reset HEAD
    * git reset --hard HEAD

* 文件层面
    + 用提交版本中的文件覆盖缓存区的文件
    + git reset HEAD~2 text.txt
    + git reset HEAD <file>

  <p style="text-align: center">
    <img src="https://user-gold-cdn.xitu.io/2018/4/3/16289af9f108ea6e?w=800&h=422&f=png&s=33574" alt="reset-file" style="width: 40%">
</p>
  1. git revert

    • Revert撤销一个提交的同时会创建一个新的提交。这是一个安全的方法,因为它不会重写提交历史。
    • git revert HEAD~2
      • 会找出倒数第二个提交,然后创建一个新的提交来撤销这些更改,然后把这个提交加入项目中。

    <p style="text-align: center">
    <img src="https://user-gold-cdn.xitu.io/2018/4/3/16289afa197868fe?w=800&h=1217&f=png&s=58696" alt="revert" style="width: 40%">
    </p>

  2. git stash

    • git stash : 暂存当前正在进行的工作
    • git stash pop : 恢复暂存的文件
    • git stash list: 显示暂存栈中所有暂存的历史
    • git stash apply stash@{1} : 将指定暂存纪录恢复
    • git stash clear : 清空暂存栈
  3. git branch

    • 创建、列出、重命名和删除分支
    • git branch : 列出所有分支
    • git branch <branch> : 创建一个名为<branch>的分支
    • git branch -d <branch> : 删除指定分支。这是一个安全的操作,Git 会阻止你删除包含未合并更改的分支。
    • git branch -D <branch> : 强制删除指定分支,即使包含未合并更改。如果你希望永远删除某条开发线的所有提交,你应该用这个命令。
    • git branch -m <branch> : 将当前分支命名为 <branch>。
  4. 简记图

<p style="text-align: center">
<img src="https://user-gold-cdn.xitu.io/2018/4/3/16289afa3e049455?w=838&h=492&f=jpeg&s=102730" alt="main" style="width: 30%">
</p>

  1. 参考
    https://www.cnblogs.com/houpeiyong/p/5890748.html
    https://github.com/geeeeeeeeek/git-recipes

相关文章

网友评论

    本文标题:git命令行完全解读

    本文链接:https://www.haomeiwen.com/subject/qvarcftx.html