说明:使用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 远程仓库链接名 分支名
在合并分支之前,先检查本地各分支的状态是否为“完美状态”
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/)