说明:使用Git,可以实现版本控制和协作开发。需要协作开发,当然需要建立一个Git代码托管的平台。目前可以使用GitHub、码云、GitLab等,码云相当于国内的GitHub,在国内访问速度高于GitHub;而GitLab是搭建私服的,是使用Git作为代码管理工具,并在此基础上搭建起来的web服务。三者的使用大同小异,这里以码云为例。
基础操作
第一步:注册登录
打开码云官网(https://gitee.com/),登录或注册
第二步:创建远程仓库
第三步:关联远程仓库
首先,在本地电脑桌面上创建一个文件夹(当然不创建也可以),鼠标右键打开Git窗口,输入git init命令,初始化一个本地仓库。
输入以下命令,克隆远程仓库至本地
git remote add 连接名 远程仓库链接
远程仓库链接,可以从网站上复制
此时,本地仓库已经关联了远程仓库,就可以进行拉取、推送等一系列操作。
克隆远程仓库(推荐此方式)
另外,还有一种简单的方式,即在本地克隆远程仓库,在本地任意位置鼠标右键,打开Git窗口,输入以下命令:
git clone 远程仓库链接
刚刚我在前面的那个本地仓库创建了一个文件,并推送到远程仓库,故此处克隆远程仓库有文件
推荐使用此方式,简洁优雅
远程仓库操作
查看远程仓库连接
git remote -v
添加远程仓库链接
git remote add origin 远程仓库链接
拉取文件至本地
在进行拉取之前要先提交本地仓库,达到“working tree clear”状态
检查本地仓库的状态,拉取前先保证本地仓库为“完美状态”(working tree clean)
在远程仓库创建一个文件
git pull 链接名 远程仓库分支名
远程仓库文件已拉取到本地仓库
推送文件至远程仓库
在进行推送之前要先进行拉取,保证自己本地仓库的内容是最新的
在本地仓库新建一个文件
git push 链接名 远程仓库分支名
刚刚忘记了把文件提交到版本库,提交后再推送至远程仓库,可以看到已经推送成功
推送冲突
当多个人操作远端仓库,对同一文件操作时,内容的不一致时,在推送时会发生冲突。
例如,有A、B两个本地仓库,都链接到了同一个远程仓库,并对master分支下的Gitee文件进行操作
A先提交并推送(没有问题)
B在提交推送前的拉取时,出现修改冲突(fix conflicts……)
查看B中的Gitee.txt文件,箭头符号包含的部分是冲突的内容
可将文件修改成如下,再次拉取推送
分支操作
新创建的仓库,默认会有一个master分支,一般不会在master分支上添加版本,而是会建立一套分支系统,在各自的分支上推送内容,称为工作流。(参考:http://t.csdn.cn/QJW1s)
创建分支/查看分支
创建分支
git branch 分支名
查看分支
git branch
创建newline分支并查看,分支名前面带“*”,表示当前所处分支
切换分支
建议在切换分支之前,先提交本分支的内容到本地,以免造成混乱,不知道什么分支的内容没有提交。另外,从master分支切换到其他分支,其他分支会复制一份master分支的内容到本分支。
git checkout 分支名
已切换到newline分支,但是本地仓库文件未发生变化,是因为该分支复制了一份master分支的内容
在newline分支新建一个文件,并提交至版本库,然后切换回master分支
master分支并没有newline分支的文件
推送分支至远程仓库
同样,推送分支前先检查本地仓库该分支下的状态是否为“完美状态”
git push 远程仓库链接名 分支名
推送newline分支至远程仓库
可以看到远程仓库已有newline分支
合并分支
在合并分支之前,先检查本地各分支的状态是否为“完美状态”
git merge 分支名
现在在本地仓库下,有三个分支,分别是master、moreline、newline,每个分支下分别自己独有的文件
master分支
newline分支
moreline分支
三个分支,都达到“完美状态”
合并newline分支和moreline分支。需要注意的是,合并分支前要先切换到newline分支下,即合并A、B分支,要先切换到A分支
合并分支后,newline分支有两个分支合并后的内容
合并分支后,将合并后的分支newline,推送到远端,当然推送前需先拉取
另外,合并分支后,被合并的分支并不会消失。切换到该分支,还能看到该分支下的独有内容,如果在该分支下创建文件并推送到远端。之前虽然合并过分支,但并不会同步地增加被合并分支新增的文件内容。如有需要,还需再次合并。
总结
(1)可以设置SSH公钥的方式连接远程仓库,更安全方便;(参考:http://t.csdn.cn/mx7Pr)
(2)使用Git命令窗口操作,虽然简洁高效,但非常容易操作失误(如文件未加入暂存区、未提交至版本库、分支未提交等等),可以使用tortoisegit,是一款专门为Git提供可视化操作的工具(官网:https://download.tortoisegit.org/tgit/)