美文网首页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