团队协作
git的版本控制都是在本地库做的。
-
团队内协作 1.团队内成员先clone代码,修改之后push到云端 2.其他成员clone之后,要想提交要先pull保持同步之后,再push -
跨团队协作  1.将对方远程库的代码复制到自己的远程库一份,fork,叉过来 2.自己的远程库把代码clone下来。 3.本地库改好之后push到自己的远程库中 4.发起pull request 拉取请求,请求原团队远程库拉取修改后的自己远程库中已修改的项目 5.原团队审核代码, 6.审核通过之后merge合并代码。
实操(云端建库,及推送本地库到远程库)
运用github进行团队写作
- 1.创建远程库
 - 2.远程库起名,一半来说和本地库名字一样 ,建好之后如下图
 - 3.创建远程库别名,每次pull和push可以不用上图链接,链接太长不好记,可以直接用别名
# 远程库别名
git remote -v
git remote add git-demo https://github.com/qingyune/git-demo.git
- 4.推送本地库到远程库中去
基本语法:git push 别名 分支 git push 别名 master git push 链接 master 如:
git push git-demo master //git-demo为别名
git push https://github.com/qingyune/git-demo.git master
//或者放入链接也行
另:推送的最小单位为分支,需要制定推送哪个分支。 下图:push成功,文本框为口令登录。 上方为浏览器登录:即若浏览器中登录了github账号会自动关联登录。  推送成功: 
拉取远程库到本地库
本地库代码和远程库不一样了,及远程库被别人修改了,有更新版本的时候。需要更新本地库,这时,拉取远程库。 语法: gie pull 别名 分支 如:
git pull git-demo master
//git-demo为别名,master为分支名
另:拉取动做pull,会自动提交本地库
克隆
克隆不用登录任何账号,
git clone https://github.com/qingyune/git-demo.git
克隆完成后会自动做三件事情: 1.拉取代码、2.初始化本地仓库、3.取别名,别名默认为origin
团队内成员合作
clone的代码不会对文件添加暂存区。 若对clone的代码进行修改,修改之后要: 1.add添加暂存区 2.commit提交本地库,
- 1.在远程库创建者没有把成员加入团队给权限之前,public只能clone,不能提交
- 2.添加团队成员,先登录git界面中,找到
一:添加成员 二:输入对方的名字,添加为成员  三:点击下图按钮,复制邀请函 邀请函本质是一个链接,把这个链接发给对应的账号成员即可。  四:成员收到地址之后 登录自己的git账号,然后在自己的git的浏览器链接里粘贴上一步的收到的链接,就会收到一个加入团队的邀请函, - 3.然后成员才能修改代码成功推送到代码托管中心库中
git pull xxxx master//拉
git push xxxx master//推
跨团队协作
- 1.git网址先打开对方团队的项目,可通过链接打开。要提前登上自己的git账号**(跨团队)**
- 2.fork 叉一份对方的项目到自己的云git代码库中(即复制一份对方的对应项目的云仓库到自己的云代码中)(跨团队)
 然后自己的账号中就会多一个项目,自己仓库中就会看到fork来源  其他clone 、pull、push操作和一般项目相同 - 3.修改过后,想要合并到原团队项目中,点击pull request,发送请求。
 创建pull request请求 ↓  - 3.原团队登录账号,会看见请求**(原团队)**
 查看对方pull request请求的项目↓  查看项目详细的代码修改内容↓  若对代码有疑问,原作者可以和对方在线留言说话↓,在下方的文本框中交流 
原作者若无疑问,可点击下方按钮,合并代码↓
SSH免密登录
- 1.进入C:\Users\Administrator目录下,点击git bash here
 2.生成.ssh目录,输入以下代码,
ssh-keygen -t rsa -C 546397749@qq.com
//ssh-keygen为命令
//-t 指定用那种加密算法
//rsa 为一种非对称加密协议
//-C 为一个单纯的描述,
//后面加一个邮箱。说明免密登陆协议针对这个邮箱准备的
 然后连续按三次回车,什么都不用输入↓  然后回到原家目录,会发现已生成.ssh文件  **里面会有两个文件,.pub为公钥,另一个为私钥。**↓  3.复制公钥内用到git中的账号中去。   第一个文本框随便起个名字→把公钥内容复制到的文本框中→点击添加↓  添加成功↓  添加成功之后,就能用下图的shh链接了,而且对应账号的ssh也不再报警告了。 这个时候在pull拉代码就不用登录账号了。直接就能拉取成功了。  然后就可以进行对应的操作了,不过链接要变成git网站上ssh的链接,其它操作完全一样。
git pull xxxx master//拉
git push xxxx master//推
注意事项
每次启动git命令行的时候要重新设一下签名。 git config --global user.email aaa@aaa.com
|