Git的一些基本操作

经常用git,但好多命令总是记不住,每次都百度。现在整理下做个笔记吧。

分支操作

  • 查看分支
    git branch  #只显示本地分支
    git branch -a #显示本地分支和远程分支
    
  • 创建分支
    git checkout -b branch_name
    #如果有一个远程分支remotes/origin/branch_name,那么执行这个命令将会创建新的名为`branch_name`本地分支并且跟踪同名的远程分支remotes/origin/branch_name
    
  • 推送远程分支
    git push origin branch_name
    
  • 删除分支
    git branch -d branch_name
    # 删除本地分支后并删除远程分支
    git push --delete origin branch_name
    

tag 标签操作

  • 查看tag列表
    git tag
    
  • 新增tag
    git tag tag_name # 比如v1.0
    
  • 推送本地指定tag到远程
    git push origin tag_name 
    
  • 推送全部本地tag到远程
    git push --tags 
    
  • 删除tag
    git tag -d 
    # 删除tag后并删除远程tag
    git push --delete origin tag_name
    

github中fork的项目与原作者同步

假如一个项目Evil-S0ul/write-doc地址: https://github.com/Evil-S0ul/write-doc

我fork之后的项目是heropoo/write-doc地址: https://github.com/heropoo/write-doc

接下来开始操作:

  1. 切换到我fork的项目目录里,然后增加源仓库地址到你项目的远程分支中
    cd write-doc
    git remote add Evil-S0ul https://github.com/Evil-S0ul/write-doc
    
  2. fetch刚添加的源分支到本地
    git fetch Evil-S0ul
    
  3. 合并两个版本的代码
    git merge Evil-S0ul/master
    
  4. 最后把合并后的代码push到你的Github项目上去就ok啦
    git push origin master
    

检出远程的某个分支或者tag

git fetch
git checkout branch_name
#或者
git checkout tag_name

同步且merge其他远程分支到当前本地分支

git pull origin other_branch_name

Git无法pull仓库refusing to merge unrelated histories

有时候我们的本地仓库添加了一个远程仓库地址,pull代码时会报refusing to merge unrelated histories的错。解决方法是加一个参数--allow-unrelated-histories

假如我们的分支是master

git pull origin master --allow-unrelated-histories

最后更新: 2018-11-18 17:59:06

评论