Git 基本命令归纳

柔情痞子 提交于 2020-01-28 17:21:32
 
 
  • 配置用户
    • git config --global user.name "shaoyoushi"
    • git config --global user.email "shaoyoushi@gmail.com"
  • 初始化当前本地目录为本地仓库
    • git init
  • 添加修改到暂存区
    • git add filename   // 添加某个文件
    • git add .                 // 添加当前目录
  • 提交暂存区的修改到本地仓库的当前分支
    • git commit [-m "comments"]
  • 查看本仓库状态
    • git status
  • 查看文件变化
    • git diff [filename]
  • 显示提交日志
    • git log
  • 将当前版本(HEAD)设置为指定版本
    • git reset revision
  • 查看命令历史
    • git reflog
  • 恢复工作区文件(如果暂存区有文件就从暂存区恢复,否则从仓库恢复)
    • git checkout -- filename
  • 从暂存区删除文件
    • git add filename                    // 先手工删除工作区的某个文件厚,再执行这一命令行,告诉git将工作区的修改(也就是删除操作)添加到暂存区
    • git rm filename                     // 直接执行这一命令行,可以让git帮助你先删除工作区里面的指定文件,再将这个删除操作添加到暂存区
  • 生成密钥
    • ssh-keygen -t rsa -C "myemail@email.com"        // 生成rsa类型的非对称密钥,并添加一个comments
  • 查看本地关联的远程仓库
    • git remote                // 查看远程仓库的名称
    • git remote -v            // 查看远程参考的名称和对应的url
  • 在本地添加远程库
    • git remote add name url        // 在本地添加关联一个远程仓库
      • git remote add origin git@github.com:shaoyoushi/hello-world.git        // 在本地添加关联一个远程库,命名为origin(习惯),采用的是ssh协议进行传输
      • git remote add abc https://github.com:shaoyoushi/hello-world.git        // 在本地添加关联一个远程库,命名为abc,采用的是https协议进行传输
      • git remote add xyz https://github.com:shaoyoushi/hello-world        // 在本地添加关联一个远程库,命名为abc,采用的是svn协议进行传输 ???
  • 从本地删除一个远程库的关联
    • git remote rm name
  • 从本地重命名一个远程库的关联
    • git remote rename old new
  • 把远程仓库克隆到本地
    • git clone url
  • 创建一个分支
    • git branch new_branch
  • 切换到一个分支
    • git checkout a_branch
  • 创建并切换到一个分支
    • git checkout -b new_branch
  • 查看分支情况
    • git branch
  • 将一个指定分支合并到当前分支
    • git merge a_branch
  • 删除一个分支
    • git branch -d a_branch
  • 保存工作区现场,并将工作区置为clean状态。每次保存,最新的stash都被命名为stash@{0},而之前的保存的stash的命名都会加1,也就是说stash的保存类似于stack,是FILO的。注意,暂存区不会被保存,只会被清空。
    • git stash                                                // 保存一个stash
    • git stash save                                        // 保存一个stash
    • git stash save "message"                     // 保存一个stash,并附加一条说明消息到这个stash上,方便后面的查看
  • 从一个保存好的stash恢复工作区现场,注意:暂存区不会被恢复,只会被清空
    • git stash apply                                      // 从最近一次保存的stash恢复,也就是stash@{0}
    • git stash apply stash@{1}                    // 从指定的一个stash恢复
  • 从一个保存好的stash恢复工作区现场,并同时删除该stash
    • git stash pop                                        // 从最近一次保存的stash恢复,也就是stash@{0},并删除该stash
    • git stash pop stash@{1}                      // 从指定的一个stash恢复,并删除该stash
  • 列出所有的stash
    • git stash list
  • 显示一个stash的信息
    • git stash show                                      // 显示最近一次保存的stash的信息
    • git stash show -v                                 // 显示最近一次保存的stash的详细信息
    • git stash show stash@{2}                    // 显示一个指定的stash的信息
    • git stash show stash@{2} -v                // 显示一个指定的stash的详细信息
  • 删除stash
    • git stash drop                                      // 删除最近一次保存的stash
    • git stash drop stash@{1}                     // 删除一个指定的stash
    • git stash clear                                      // 删除所有的stash
  • 将修改推送到远程仓库
    • git push origin master                         // 将本地的master分支推送到远程仓库origin的master分支上去
    • git push                                                // 将本地当前分支推送到相关联的远程仓库中去
  • 从远程仓库获取修改
    • git fetch origin master                         // 从远程仓库origin的master分支获取修改到本地
    • git fetch                                                // 从本地当前分支相关联的的远程仓库分支中获取修改到本地
    • git pull origin master                          // 从远程仓库origin的master分支获取修改到本地,并执行merge操作
    • git pull                                                 // 从本地当前分支相关联的的远程仓库分支中获取修改到本地,并执行merge操作
  • 删除远程仓库中的分支
    • git pull origin --delete a_branch        // 从远程仓库origin中删除a_branch分支
  • 增加tag
    • git tag tag_name                                  // 对当前分支的当前提交打一个tag
    • git tag tag_name a_commit_id            // 对当前分支的指定提交打一个tag
  • 查看tag
    • git tag
  • 删除tag
    • git tag -d a_tag_name
  • 推送tag到远程仓库
    • git push origina_tag_name                // 推送一个指定的tag到远程仓库origin
    • git push origin --tags                         // 推送所有未推送的tags到远程仓库origin
  • 将本地删除tag的操作推送到远程仓库:(先在本地执行删除tag的操作,然后:)
    • git push origin :refs/tags/a_tag_name 
  • 删除远程仓库的分支
    • git push origin --delete tag a_tag_name
  • 显示指定分支、提交、tag等信息
    • git show a_branch
    • git show a_commit_id
    • git show a_tag
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!