git常用的命令

240 阅读2分钟

一、 Git 常用命令速查

  • git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来

远程仓库相关命令

检出仓库:$ git clone git://github.com/jquery/jquery.git

查看远程仓库:$ git remote -v

添加远程仓库:$ git remote add [name] [url]

删除远程仓库:$ git remote rm [name]

修改远程仓库:$ git remote set-url --push [name] [newUrl]

拉取远程仓库:$ git pull [remoteName] [localBranchName]

推送远程仓库:$ git push [remoteName] [localBranchName]

  • 如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下:

 git push origin test:master      // 提交 本地test 分支作为远程的master分支
 git push origin test:test      // 提交 本地test 分支作为远程的test分支

分支(branch)操作相关命令

  • git branch --set-upstream dev origin/next
  • // 手动建立追踪关系。dev分支追踪origin/next分支
  • git branch 列出所有本地分支
  • git branch -r 列出所有远程分支
  • git branch -a 列出所有本地分支和远程分支
  • git branch [branch-name] 新建一个分支,但依然停留在当前分支
  • git checkout -b [branch-name] 新建一个分支,并切换到该分支
  • git branch --track [branch][remote-branch] 新建一个分支,与指定的远程分支建立追踪关系
  • git checkout [branch-name] 切换到指定分支,并更新工作区
  • git branch -d [branch-name] 删除分支-d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。
  • git push origin --delete [branch-name] 删除远程分支

版本(tag)操作相关命令

查看版本:$ git tag

创建版本:$ git tag [name]

删除版本:$ git tag -d [name]

查看远程版本:$ git tag -r

创建远程版本(本地版本push到远程):$ git push origin [name]

删除远程版本:$ git push origin :refs/tags/[name]

合并远程仓库的tag到本地:$ git pull origin --tags

上传本地tag到远程仓库:$ git push origin --tags

创建带注释的tag:$ git tag -a [name] -m 'yourMessage'


合并分支

比如,如果要将开发中的分支(develop),合并到稳定分支(master)

 首先切换的master分支:git checkout master。
 然后执行合并操作:git merge develop。
 如果有冲突,会提示你,调用git status查看冲突文件。
 解决冲突,然后调用git add .
 所有冲突解决后,git commit 提交更改。

拉取分支

获取最新版本有两种 拉取和 获取 pull 和 fetch

git pull 相当于git fetch 和 git merge

git  pull 从远程拉取最新版本到本地自动合并 merge   
     git pull origin master
git  fetch   从远程获取最新版本到本地不会自动合并 merge 
    git fetch origin master
    git log -p master..origin/master
    git merge origin/master
以上命令的含义:
   首先从远程的origin的master主分支下载最新的版本到origin/master分支上
   然后比较本地的master分支和origin/master分支的差别
   最后进行合并

实际使用中使用git fetch 更安全在merge之前可以看清楚 更新情况 再决定是否合并

   当前的分支20171208,获取20171214分支最新代码,然后再推送到远程远程20171214
    git fetch
    git checkout 20171214
    git merge 20171208
    git push

推送分支

(1)本地分支与远程分支可以不是追踪关系

  • 如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的test分支,或者作为另外一个名叫test的分支,如下:

      * 本地先开好分支然后推送到远程
      $  git checkout -b test   //创建并切换到分支test  
      $  git push origin test:test     // 推送本地的test(冒号前面的)分支到
      远程origin的test (冒号后面的)分支(没有会自动创建)
    

(2)本地分支与远程分支是追踪关系

  • 如果想把本地的某个分支dev提交到远程仓库,并作为远程仓库的dev分支,或者作为另外一个名叫dev的分支,如下:

      * 本地先开好分支然后推送到远程
      $  git checkout -b dev   //创建并切换到分支dev 
      或者当前的分支就是dev
      $  git push origin dev
      eg.2
      git push origin payght  // 将本地dev 分支推送到远程 payght 分支