从此养成使用Git命令的习惯

86 阅读3分钟

常用命令

  • git init 初始化仓库
  • git add <file.name> 暂存单个文件
  • git commit -m "desc" 提交文件,并且附带描述
  • git log 查看提交记录
  • git log --prettty=oneline 查看精简版日志
  • git log --graph --pretty=oneline --abbrev-commit 查看分支结构
  • git reset --hard HEAD^ 回退到上一个版本,并且删除之前提交的
  • git reset --hard < commit id > 回退到指定版本
  • git reset HEAD < file > 可以撤销 暂存区到工作区
  • git reflog 查看每一次使用的命令。 可用于当回退到某个版本后,又想在回到没回退之前的版本,可以使用他查看 commit id
    • 回退版本后,如果需要远程也回退,需要强制push git push -f origin branch_name
  • git diff HEAD -- readme.txt 可以查看工作区 和 版本库里面代码的区别
  • git checkout -- readme.txt 撤销工作区所有的修改
    • git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
  • git brach -M master 重命名当前分支
  • git remote add origin 添加远程仓库
  • git push origin mater 推送代码到远程仓库
  • git checkout -b dev
    • -b 表示创建并且切换,相当于执行了 git branch dev;git checkout dev
  • git switch -c dev
    • 和git checkout -b dev 效果一样,并且更容易理解
  • git branch 查看所有分支
  • git checkout master 切换分支
  • git merge dev 合并分支(如果这时候在mater上,那就是吧dev分支合并到 master上)
  • git branch -d master 删除分支
  • git branch -D < branch > 强行删除 没有合并过的分支
  • git merge --no-ff -m "merge width no-ff" dev
    • --no-ff 表示不使用 Fast forward 模式,会产生合并记录,并且合理看出做过合并
  • git stash 保存工作现场
  • git stash list 查看保存的工作
  • git stash pop 恢复工作现场,并且删除stash区域的内容
  • git cherry-pick < commit id > 可以合并某一次提交的代码, 适用于只想合并某一次提交的代码,不是全部合并的场景
  • git stash apply 是恢复现场,但是不会删除stage区域的内容
  • git stash drop 是删除stage
    • 可以多次stage ,恢复使用 git stash apply stash@{0}
  • git checkout -b dev origin/dev 创建远程 origin 的 dev 分支到本地
  • git remote -v 查看远程仓库信息

    tag

  • git tag v1.0 给最新的一次提交打标签
  • git tag 查看所有标签
  • git tag v2.0 < commit id> 给某一次提交打标签
  • git show < tagname> 查看标签信息
  • git tag -a v1.0 -m "version 1.0 released" 1094asd
    • 创建带有说明的标签,用-a 指定标签名,-m 指定说明文字
  • git tag -d v1.0 删除tag
    • 因为创建标签都自存在于本地,不会自动推送到远程。所有可以在本地安全删除
    • 如果要推送到远程: git push origin < tagname>
    • 一次性推送全部未推送的tag :git push origin --tags
    • 如果标签已经推送到远程,要删除,可以先从本地删除:
      • git tag -d v1.0
    • 然后从远程删除
      • git push origin :refs/tags/v1.0

    多人协作git管理流程:

  • 1、首先可以尝试 git push origin < branch-name> 推送自己的修改

  • 2、如果推送失败,则因为远程分支比自己的本地更新, 需要先用git pull 试图合并

  • 3、如果合并冲突,解决冲突,并且在本地提交

  • 4、没有冲突或者解决掉冲突后,再用 git push origin < branch-name> 推送就能成功

  • 如果git pull 提示 no tracking information ,则说明本地分支和远程分支的链接关系没有创建,用命令 git branch --set-upstream-to < branch-name> origin/< branch-name>