概述:为了在不同地方,不同人员之间进行协同编辑,同时能够进行统一管理,我们可以把代码托管到github的服务器上。
1.第一步:新建一个github账户
2.第二步:在账户中新建一个仓库
3.第三步:在本地新建一个仓库
git init
git add .
git commit -m
4.第四步:在本地新建远程仓库与分支
git remote add origin [email protected]:testthinguser/iphone_project.git
vim .git/config
1 [core]
2 repositoryformatversion = 0
3 filemode = true
4 bare = false
5 logallrefupdates = true
6 [remote "origin"]
7 url = https://github.com/huangyukun2012/linux-2.4.21.git
8 fetch = +refs/heads/*:refs/remotes/origin/*
9 [branch "master"]
10 remote=origin
11 merge = refs/heads/master
注意,remote "origin"表示远程分支的信息,branch master 表示本地分支的信息,其中remote参数表示要提交到的远程分支,merge 是默认的merge对象
5.第五步:利用git进行推送
git push origin master
此时,容易出现以下no fast forward错误:
出错原因:
多人协同开发,使用Git经常会看到警告信息包含术语:fast forward, 这是何义?
简单来说就是提交到远程中心仓库的代码必须是按照时间顺序的。
比如A从中心仓库拿到代码后,对文件f进行了修改。然后push到中心仓库。
B在A之前就拿到了中心仓库的代码,在A push成功之后也对f文件进行了修改。这个时候B也运行push命令推送代码。
会收到一个类似上面的信息:
提醒你非快进方式的更新被拒绝了,需要先从中心仓库pull到最新版本,merge后再push.
特别注意:
1)fast forward能够保证不会强制覆盖别人的代码,确保了多人协同开发。简而言之,fast forward提交就是说,后提交点B是前面最新提交点的直接后代。这样,直接将HEAD指针往下游移动即可。
2)尽量不要使用non fast forward方法提交代码。no fastforward状态如下图所示:
-------1.1-------1.2-------1.3
|
1.4-------1.5
上图产生的过程:从图中,我么可以看出:最开始我们从服务器上pull下来1.1版本,后来别人向服务器上提交了1.2和1.3版本,然后我们在本地分支开发了1.4与1.5版本。此时,如果我们再进行提交,那么1.2和1.3的版本历史将被覆盖。
解决方法:
先执行git pull
然后执行 git add .
然后git commit
最后git push origin master