举例
1. 推送
步骤
- git push [别名] [分支名]
打开git,创建一个新的文件夹 git-test,在文件夹里创建一个txt文件,在文件里随便写几个字,初始化(本地库)
添加到暂存区,提交到本地库
在 github 上创建远程库
然后回到 git 终端,创建远程库地址别名, 主要是地址太长了,用别名方便一点
查看当前所有远程库地址别名
将本地库推送到远程库
回到 github 查看,已经推送上去了
2. 克隆
步骤
- git clone [远程地址]
首先回到上一层文件夹, 新建一个文件夹git-test-1
回到 github 上复制克隆地址
回到 git 终端,进入到刚才新建的文件夹路径下,进行克隆
此时该文件夹下就有了上面推送到远程库的内容,并且已经初始化好了本地库,也创建好了别名
文件内容肯定是一模一样的
3. 加入团队
在这里使用自己的 github 小号进行测试,将它拉入我的团队
首先进入到 github 大号(也就是创建远程库的那个号),进到之前创建的项目中去,点击 Settings
点击邀请成员,输入成员邮箱
之后登上小号的 github, 接受邀请
此时,进入到大号的 github 查看,就已经成为团队成员了
4. 团队成员推送
假设之前的克隆操作是 github 小号进行克隆的,那么现在小号(也就是团队成员)也可以对该项目进行修改,然后也可以推送到 github 上的这个远程库中,实现项目的共同开发。
在克隆的文件夹中(git-test-1),进入到test项目文件夹,可以有修改的权限
比如增加以下两行文字
然后增加到暂存区
提交到本地库
然后就可以推送到 github 的团队项目远程库中
然后到 github 远程库中查看
远程库创建者的 github 账号显示
团队成员的 github 账号显示
5. 项目拉取
操作步骤
- pull = fetch + merge
- git fetch [远程库地址别名] [远程分支名]
- git merge [远程库地址别名 / 远程分支名]
可以直接使用 pull 操作
- git pull [远程库地址别名] [远程分支名]
具体操作:
上面团队成员(小号)修改后进行推送,假设团队其他成员现在需要查看该项目,此时需要将项目从远程库中,拉取下来。这里假设是大号(远程库创建者)进行项目拉取
首先进入到项目本地库文件夹(就是大号创建的文件夹)的路径下
然后进行项目抓取
此时本地库的内容并没有变,抓取只是把远程的内容下载到本地,但是并没有修改本地工作区的文件
如要查看下载的内容,可以执行以下操作
想返回的话执行以下命令
分开操作的优点
确定下载的内容没有问题之后,就将远程的 master 合并到 本地的 master
以上是将 pull 分开操作的,先执行的 fetch ,然后执行了 merge ,下面测试一下 直接使用 pull 进行一次性拉取
先自己重复一下 第四步 成员推送的流程,将里面内容改一下。
操作好之后,进入到 大号创建的本地库文件夹 路径下,用 pull 拉取下来
6. 协同开发时冲突的解决
比如:两个人都在修改同一个文件的同一个位置,先推送的人可以推送成功,后推送的人就推不上去(必须先拉取下来才能再推送),这就成为了一个冲突
举例
大号进行修改,然后推送到远程库
此时远程库内容
然后 小号进行 修改,再进行推送,就会失败
解决办法
先执行 pull 操作,此时处于冲突的情况
进入到项目文件里
把特殊符号都删除,改成我们需要的样子,就可以了
然后再推送到远程库中
此时的 github 远程库