Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

git命令行完全解读 #2

Open
prettyEcho opened this issue Mar 30, 2018 · 0 comments
Open

git命令行完全解读 #2

prettyEcho opened this issue Mar 30, 2018 · 0 comments
Labels
git git interesting interesting

Comments

@prettyEcho
Copy link
Owner

prettyEcho commented Mar 30, 2018

BY 张建成(prettyEcho@github)

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

🐬🐬 欢迎评论和star 🐳🐳

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 : 提交确定文件
    • git add * : 提交所有更改
    • git add -A : 提交tracted和untracted中的文件提交到缓存区
    • git add -u : 提交tracted中的文件提交到缓存区
    • git add -p : 交互式提交
  4. git commit

    • 将缓存的快照提交到项目历史
    • git commit -m "" : 提交已经缓存的快照。它会运行文本编辑器,等待你输入提交信息。当你输入信息之后,保存文件,关闭编辑器,创建实际的提交。
  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 : 推送本地git到远端某个分支
    • git push --set-upstream origin : 创建远端分支并推送代码
    • example: git push origin feature-branch:feature-branch //推送本地的feature-branch(冒号前面的)分支到远程origin的feature-branch(冒号后面的)分支(没有会自动创建)
  8. git log git

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

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

    • 提交层面

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

      • 用提交版本中的文件覆盖本地工作区的文件
      • git checkout HEAD~2 test.txt
      • git checkout HEAD (常用)
    • example:

      • git checkout -b feature-branch origin/feature-branch //检出远程的feature-branch分支到本地

    checkout-file

    • 分支层面
      • 切换分支
      • git checkout
  10. git reset

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

    • 提交层面

      • git reset --soft HEAD~2
      • git reset --soft

    reset

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

    * --soft – 缓存区和工作目录都不会被改变
    * --mixed – 默认选项。缓存区和你指定的提交同步,但工作目录不受影响
    * --hard – 缓存区和工作目录都同步到你指定的提交
    

    reset-scope

    常用操作:

    * git reset --mixed HEAD / git reset HEAD
    * git reset --hard HEAD
    
    • 文件层面

      • 用提交版本中的文件覆盖缓存区的文件
      • git reset HEAD~2 text.txt
      • git reset HEAD

      reset-file

  11. git revert

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

    revert

  12. git stash

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

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

main

  1. 参考
    https://www.cnblogs.com/houpeiyong/p/5890748.html
    https://github.com/geeeeeeeeek/git-recipes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
git git interesting interesting
Projects
None yet
Development

No branches or pull requests

1 participant