Git使用教程 (二) 版本库+如何加入到团队的远程仓库中

Git使用教程(二)

工作区和暂存区

工作区就是电脑中能看到的目录,比如我的git_repository文件夹就是一个工作区:
在这里插入图片描述
在前面提到过的TotoiseSVN和Git的不同就是Git存在一个**暂存区(Stage)**的概念。

版本库(repository)

在工作区中可以看到一个.git文件夹,其实这个文件夹不属于工作区,而是Git的版本库。
版本库中存了很多东西,其中最重要的就是暂存区(stage或者index),还有Git给我们创建的第一个分支master,以及指向master的一个HEAD指针。
将一个文件往Git版本库中添加的时候分两步执行:
1、git add将文件修改添加到暂存区。
2、git commit提交修改,实际上就是把暂存区的所有内容提交到当前分支。
我们创建Git的时候Git为我们创建了唯一一个master分支,所以现在的文件都是往master分支上提交。

介绍完基础概念,接下来介绍怎么使用git来共享一个远程仓库。

1、进入到已经存在的目录
2、使用git init初始化本地仓库
3、添加远程仓库git remote add origin (git_address)
4、提交本地代码git add
5、提交本地代码git commit -m "something"
6、提交到远程仓库git push origin master

这里注意,当你和别人合作项目时有两种选择:
第一种是你A不作为项目的contributor,这时,你需要在github界面点击fork将别人的仓库复制给自己的仓库,然后用clone将github中的远程仓库克隆到本地电脑中,注意,这时添加远程仓库的时候要写自己仓库的url。但是在经过自己A的修改过后不能通过git push origin master将代码贡献到队友B的版本库。所以如果你想将自己的代码贡献给B的项目,你应该:
将自己的代码push到自己的github仓库中,然后使用pull request命令,这时主人B会收到请求,并决定要不要你的代码。

fork了别人的项目到自己的repository之后,别人的项目更新了,我们fork出来的项目怎么更新?
首先fetch别人的项目到自己的项目上,再进行判断和merge(合并)。但是pull不是也是一样的功能吗?哪么fetch和pull有啥区别?
其实,fetch+merge和pull效果一样,建议使用fetch,因为这样子可以使用log检查出来fetch下来的更新是否合适。pull直接包含了这两部操作。

现在看看代码实现:

git fetch origin master
git log -p master..origin/master
git merge origin/master

等价于:

git pull origin master

第二种则是你A作为项目的contributor,不知道怎么添加为contributor?看这篇文章吧:如何将一个队友添加为你的远程仓库的contributor?
当你直接成为了contributor之后,你就可以直接向这个远程仓库push你的改变,fetch+merge或pull进行本地库的更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值