一、 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 分支