本文从克隆一个新项目开始举例。
1.一台电脑同时生成码云和github的SSH私钥
1).打开git bash,输入以下命令
ssh-keygen -t rsa -C 'email' -f 'gitee_id_rsa' // email为你注册码云的邮件地址
ssh-keygen -t rsa -C 'email' -f 'github_id_rsa' // email为你注册github的邮件地址
2).连续按三次enter,生成各自的ssh key,找到路径中的文件或执行下面命令,并复制内容
cat ~/.ssh/gitee_id_rsa.pub
3).分别登录码云和github,打开设置中的ssh管理界面,把第二步中复制的内容添加到公钥栏
![](https://img.haomeiwen.com/i3486407/a2127e9a7d785e8b.png)
4).至关重要的一步:创建config文件解决ssh冲突
在.ssh文件夹下执行命令:vi config 进入编辑模式,加入以下代码
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
#github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
编辑完成后按ESC退回命令模式,然后输入:w保存
5).测试是否连接成功
ssh -T git@gitee.com // 提示后输入yes
ssh -T git@github.com
2.克隆项目至本地
gitBash或cmd切换至存放项目的路径,然后执行 git clone ‘url’
或者直接下载压缩包到本地。
3.提交代码
1).普通提交
git add .
git commit -m"提交说明"
git pull origin 分支名
git push origin 分支名
2).合并分支代码并提交
1.执行普通提交的步骤;
2.git checkou 分支名, 切换至需要合并代码的分支;
3.git merge --no-ff 分支名,合并分支;
4.执行普通提交的步骤,提交合并后的分支代码。
4.分支管理
git branch: 查看本地分支
git branch -a:查看远程分支
git branch 分支名:创建分支
git checkout 分支名:切换到目标分支
git branch -D 分支名:删除本地分支
git push origin --delete 分支名:删除远程分支
git merge --no-ff 分支名:合并分支到当前分支
5.暂存代码区
适用场景:开发新功能到一半突然要改个bug,但是新功能还没完成不想提交,就可以用git stash缓存起来
1.git status:查看当前修改;
2.git stash: 暂存当前修改 也可用 git stash save "message" 加版本记录;
3.git stash pop: 将缓存堆栈中的第一个stash应用到当前工作区;
4.git stash list: 查看当前所有的stash目录;
5.git stash apply: 将所有的stash应用到当前工作区;
6.git stash drop stash@{0}: 删除指定的stash;
7.git stash clear: 删除所有的stash;
8.git stash branch name: 从暂存区新建分支;
6.分布式合作开发
当项目成员较多且特性分支较多时,很容易造成冲突,为了减少这种冲突,可以采用分布式开发。
首先,把公司仓库下的项目fork到个人仓库,此时更改提交不会对公司仓库项目有影响
![](https://img.haomeiwen.com/i3486407/2bee9fafd5badc52.png)
1.git remote -v 查看当前远程仓库信息
2.git remote add upstream <url> 添加一个名为upstream的远程仓库关联
3.git fetch upstream 抓取远程仓库upstream中的代码
4.git checkout dev 切换到未更新代码的分支
5.git merge upstream/dev 远程仓库upstream中dev分支的代码与本地dev分支代码合并
6.git push origin dev 推送本地dev分支代码到远程仓库origin
7.提交审查代码
![](https://img.haomeiwen.com/i3486407/fb4cb0333f4aa0f6.png)
网友评论