一、新建仓库/连接仓库
1、项目管理者,创建新仓库:
①远程创建一个空的仓库。(不要勾选任何初始化文件,否则就不是空仓库了)
②本地准备好项目。
③本地连接远程仓库:
- HTTPS的方式:git remote add origin(连接名) 。
- SSH的方式:git remote add origin git@
④将本地项目仓库提交到远程仓库:git push origin master。
2、项目参与者:
①本地连接管理者创建的远程仓库:方法与管理者相同。
②复制远程项目到本地:
二、其他相关操作
1、git remote/git remote -v:查看当前连接的远程仓库。
2、git remote -h:查看remote相关帮助文档。
3、git remote remove origin:断开远程连接。
4、git pull origin 分支名:拉下远程仓库的指定分支中项目的最新版本。
5、git push origin 分支名:提交本地指定分支中项目的最新版本。
6、首个连接名默认都叫origin,若本地还需要同时连接其他平台,可以载创建一个不同连接名的连接,然后就可以根据指令中的连接名定向操作。
三、SSH连接
1、生成sshkey:ssh-keygen -t rsa -C "xxx@xxx.com",生成的信息保存于,~/.ssh目录下。
2、.ssh目录下的id_rsa.pub的信息即公钥。
3、本地是管理员,远程管理员将本地公钥添加到管理员码云:码云 => 设置 => 安全设置 => SSH公钥。
4、本地是协同者,远程管理员将本地公钥添加到远程仓库:码云 => 项目仓库 => 管理 => 部署公钥管理 => 添加公钥。
5、添加后,输入:git -T git@gitee.com,出现成功信息即代表添加成功。
6、添加成功,通过SSH方式进行远程操作会自动使用本地私钥进行匹配,若匹配成功,即可正常操作。
四、码云与自建git添加协同者的区别
1、码云:
①本地公钥配置为协同者的码云个人公钥。
②管理者添加协同者的码云账号到项目中。
③协同者确认添加。
2、自建git:
①管理者把协同者的本地公钥直接添加到项目中。
②协同者确认添加。
五、冲突问题
1、冲突产生的原因:不同版本对同一文件的相同位置进行了修改,有可能产生逻辑矛盾的情况。
2、冲突演示:
<<<<<<< HEAD # 冲突开始
# 自己的代码
======= # 分割线
# 别人的代码
>>>>>>> b63c408abd05b87fc492d40523240561999dba50 # 冲突结束(版本号)
3、出现冲突的场景:
①拉下分支时,远程pull下来的最新版本与本地预备版本冲突。
②合并分支时,本地push提交的版本与远程最新版本冲突。
4、解决冲突的步骤:
①与冲突点的作者沟通,整合代码。
②整合的代码修改好先保存于本地版本库,再push提交。
六、其他说明
1、协同者一般拉下dev分支(由管理者在线上创建),然后切换在本地dev分支上修改并提交(可能是远程pull下来的,也可以在本地创建)。
2、提交代码时,应该确保工作区与暂存区都已清空。
3、应该先pull下来,在最新版本上进行操作,再push提交。
4、git push origin master -f:普通提交无法实现时,可以强制提交,但是不提倡使用。
5、当项目当前版本出现重大崩坏时,可以通过master分支回滚到某个稳定版本。
①本地pull下来master分支。
②git reset --hard 版本号:回滚到指定版本。
③git push origin master -f:强制push提交。
七、pycharm中使用git
1、配置git:settings => Version Control => Git => 配置git.exe。
2、git clone:VCS => Checkout from Version Control => Git。
3、创建本地分支:右下角分支名 => New Branch。
4、pull/push:右击项目名 => Git => Repostiory => Pull/Push,或者上方快捷按钮。
5、add/commit:右击项目名 => Git => Repostiory =>Add/Commit Directory。
6、版本对比:右击项目名 => Git => Show History。
八、补充
1、pycharm误操作找回历史记录:右击项目名 => Git =>Local History => Show History。
2、git变基:用<git rebase>代替<git merge>实行合并,就是变基合并,变基合并后,主分支只保留子分支最新的版本,否则,合并后,子分支的历史版本都会同步到主分支上。
3、码云上合并:Pull Requests。