1.git 环境搭建
https://www.cnblogs.com/zhangyaolan/p/11105330.html
2.本地git与github相连
1.配置username,email
在电脑空白处(任意位置)右键点击Git Bash Here 输入
git config –global user.name github的用户名
git config –global user.email github绑定的邮箱
2.配置SSH key
现在可以进行git和github连接了,本地Git仓库和GitHub仓库之间的传输是通过SSH加密传输,先配置SSH Key
在电脑空白处(任意位置)右键点击Git Bash Here 输入,注意替换为自己的github注册邮箱地址
ssh-keygen -t rsa -C 2451433153@qq.com
之后回车,如果需要确认,则按照要求确认
创建公私钥成功后,去C:\Users\用户名\.ssh,找到公私钥文件,将pub文件(公钥)中内容复制
3.在github网址上,点击自己账号,点击Settings–New SSH keys,输入title,输入公钥,点击添加,如下图
3.回到Git Bash,输入ssh -T git@github.com ,输入yes,出现如下界面,说明公私钥配置完成。
3.成为某个项目(你要加入的)的协作者
项目所有者将你设置为协作者
4.使用SSH克隆远程仓库到本地
如之前已经克隆过,则需将develop分支的内容重新拉一下,防止本地不是最新的
先切换至本地develop分支git checkout develop
拉取远程仓库develop分支最新内容git pull origin develop
如果未克隆过则进行下列步骤
右键打开Gitbash(打开的位置即为要项目将要保存的位置)执行
git clone git@github.com:qianqiu-2020/FlexibleNetworks.git
克隆完毕后切换至develop分支
git checkout develop
创建自己的开发分支
git branch dev(自己随意起名)
切换至自己的分支
git checkout dev
5.在自己新建的分支里进行开发
开发时需要经常使用
git add . 添加所有文件(除了.gitignore文件中指定的不需要添加的文件)
git commit -m “注释,写明新做的功能或内容”
【拓展】管理分支总结
git branch 查看本地分支
git branch -r 查看远程分支
git branch -a 查看所有分支
6.完成了较大的更新时,需要提交到远程仓库时
先commit自己的分支到本地仓库 后 切换至develop
git checkout develop
然后拉取远程仓库的develop分支到本地(防止其他人已经进行过更新)
git pull origin develop
之后将自己的分支合并(合并不会影响合并者,即dev)到develop中,在develop中执行如下命令
git merge dev
7.此时有可能需要解决冲突
【可能的报错,不是此错请看正常情况】
当你和其他人同时修改了相同文件,其他人push到远程仓库后,你再pull下来,然后进行merge(但dev分支的内容未保存时),就会提示:
error: Your local changes to the following files would be overwritten by merge:
XXXX文件
Please, commit your changes or stash them before you can merge.
解决方法:(遇到此问题原因是6步骤没有先commit操作)
先切换到dev分支中并commit到本地仓库,然后再切换至develop中进行merge
【正常情况】
这时候git会把冲突的地方告诉你,冲突文件会有如下提示信息:
| 12345 | ? <<<<<<< HEAD
? xxx in master
? =======
? xxx in dev
? >>>>>>> dev
|
|-------|---------------------------------------------------------------------------|
意思是:
<<<<<<<标记冲突开始,后面跟的是当前分支中的内容。
=======之后,>>>>>>>之前,则是要merge过来的另一条分支上的代码。
>>>>>>>之后的dev是该分支的名字。
在本地解决完冲突后,重新commit,最后把你本地修改的文件push到服务器即可。
也可以:
git stash 先把当前工作现场“储藏”起来
git pull master 拉去远程仓库代码
git stash list 查看储藏起来的工作现场
git stash pop 恢复并删除工作现场(也可以先git stash apply恢复,再用git stash drop来删除工作现场)
【拓展】
如果merge之后后悔了,则可进行以下操作
第一步:git checkout到你要恢复的那个分支上
1 | 1.git checkout develop |
---|
第二步:git reflog查出要回退到merge前的版本号
1 | 1. git reflog |
---|
第三步:git reset –hard [版本号]就回退到merge前的代码状态了
1 | 1.git reset --hard f82cfd2 |
---|
8.成功合并后,将develop分支提交到远程仓库
git push origin develop
9.如果需要继续开发,则先删除自己的分支dev,重新从develop分支中新建一个自己的分支
删除分支git branch -d dev
新建分支git branch newdev
切换至新的分支git checkout newdev
之后再次跳转到第五步,如此循环。
*git存储全览图**【拓展】gitkraken(git的一种可视化工具)的使用
【另一种类似思路】组织->团队
【另一种思路】代码拥有者添加其他人的ssh,可以使得其他人直接访问代码拥有者的仓库
多个ssh密钥相关问题https://www.cnblogs.com/SUNSHINEC/p/8617029.html
【另一种思路】参与者fork+pull
https://blog.csdn.net/qq_41401062/article/details/89304072
【拓展】克隆时http与ssh的区别
1.clone项目:使用ssh方式时,首先你必须是该项目的管理者(协作者)或拥有者,并且需要配置个人的ssh key。而对于使用https方式来讲,就没有这些要求。
2.push:在使用ssh方式时,是不需要验证用户名和密码,如果你在配置ssh key时设置了密码,则仅需要验证配对密码。而对于使用https方式来讲,每次push都需要验证用户名和密码。