您的位置:首页 > 其它

Git远程仓库

sukkong 2015-03-19 15:24 46 查看
git push -u origin master:把本地库的所有内容推送到远程上

由于远程库是空的,我们第一次推送
master
分支时,加上了
-u
参数,Git不但会把本地的
master
分支内容推送的远程新的
master
分支,还会把本地的
master
分支和远程的
master
分支关联起来,在以后的推送或者拉取时就可以简化命令:git
push origin master


要关联一个远程库,使用命令
git remote add origin git@server-name:path/repo-name.git


关联后,使用命令
git push -u origin master
第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令
git push origin
master
推送最新修改;
git clone:从远程库克隆代码到本地

要克隆一个仓库,首先必须知道仓库的地址,然后使用
git clone
命令克隆。

Git支持多种协议,包括
https
,但通过
ssh
支持的原生
git
协议速度最快。
创建合并分支:
git checkout -b dev:创建并切换到dev分支就等于下面两句

git branch dev:创建分支

git checkout dev:切换分支

git branch:查看当前分支

git branch
命令会列出所有分支,当前分支前面会标一个
*
号。

git merge:合并某当前分支到当前分支

git branch -d <name>:删除分支

查看分支:
git branch


创建分支:
git branch <name>


切换分支:
git checkout <name>


创建+切换分支:
git checkout -b <name>


合并某分支到当前分支:
git merge <name>


删除分支:
git branch -d <name>


git log --graph --pretty=oneline --abbrev-commit:看到分支合并情况

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

git log --graph
命令可以看到分支合并图。

合并分支时起冲突,直接查看本地的内容。Git用
<<<<<<<
=======
>>>>>>>
标记出不同分支的内容。

修改后再提交:

$ git add readme.txt
$ git commit -m "conflict fixed"
[master 59bc1cb] conflict fixed


Git分支十分强大,在团队开发中应该充分应用。

合并分支时,加上
--no-ff
参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而
fast
forward
合并就看不出来曾经做过合并。
git stash:存储当前现场
git stash pop:恢复现场并把stash的内容删除

git stash list:查看stash的内容

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;

当手头工作没有完成时,先把工作现场
git stash
一下,然后去修复bug,修复后,再
git
stash pop
,回到工作现场。

开发一个新功能,最好新建一个分支;

如果要丢弃一个没有被合并过的分支,可以通过
git branch -D <name>
强行删除。
git remote:查看远程库的分支
git remote -v:查看远程库信息

因此,多人协作的工作模式通常是这样:

首先,可以试图用
git
push origin branch-name
推送自己的修改;

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

如果合并有冲突,则解决冲突,并在本地提交;

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

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


查看远程库信息,使用
git
remote -v


本地新建的分支如果不推送到远程,对其他人就是不可见的;

从本地推送分支,使用
git
push origin branch-name
,如果推送失败,先用
git
pull
抓取远程的新提交;

在本地创建和远程分支对应的分支,使用
git
checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致;

建立本地分支和远程分支的关联,使用
git
branch --set-upstream branch-name origin/branch-name


从远程抓取分支,使用
git
pull
,如果有冲突,要先处理冲突。

git tag:打标签

命令
git
tag <name>
用于新建一个标签,默认为
HEAD
,也可以指定一个commit
id;

git
tag -a <tagname> -m "blablabla..."
可以指定标签信息;

git
tag -s <tagname> -m "blablabla..."
可以用PGP签名标签;

命令
git
tag
可以查看所有标签。
标签: