git使用

远程仓库设置签名:
前面用来区别是谁提交的
还有一个gitee账户密码和这个有区别吗,设置签名但是把windows上的密码管理器中的密码删掉试试:
当在windows设置中的密钥管理器中删除gitee的登陆邮箱和密码后再次使用git push提交代码,要求输入凭据
image
然后提交成功,提交人显示的是设置的签名的用户名和邮箱,这样有点不合理,假如团队有多个人,那么需要把仓库拥有者的账号密码告诉大家才能提交吗?
签名是必须的。
合理的情况应该是一个项目,拥有者可以邀请别人参与项目的开发成为开发者,开发者都可以提交自己的代码。区别开发者使用签名,而不是gitee账户密码,但是如果你使用的邮箱注册过gitee账号,在gitee上显示的提交人是gitee账号的昵称。

下面使用两个gitee账号进行测试,edge登录账号1,firefox登录账号2,本地windows上不保留任何gitee账号密码,签名中账号和邮箱设置成任意,允许不存在。
在账号2中新建一个仓库,在项目管理--仓库成员管理中添加开发者成员,于是得到一个邀请连接,在edge中打开链接,选择接收邀请,由于我在账号2中选择了需要验证,所以还需要再账号2的私信中确认申请通过,于是账号1成为账号2创建仓库的开发者。下面使用账号1提交一次代码。
新建一个文件夹,git bash here,git init,随便新建一个文件,git add .,git commit -m "zhanghao1detijiao",git push 仓库地址 分支,要求输入gitee账号密码
image
第一次账号密码输入错误,第二次成功提交。
由于这时空仓库,所以可以直接push?
提交成功后查看仓库,仓库显示的是设置的签名提交的代码,并不是显示账号1的账号邮箱。但是可以肯定的是,如果没有gitee账号密码,肯定是不能提交代码的。拥有了gitee账号后,提交代码时可以随意设置提交签名,邮箱不存在都行。
账号拥有者如何限制开发者的提交呢,意思是账号拥有者如何审核开发者的代码,是通知开发者只能提交到特定的分支上吗?
如果我是仓库拥有者,现在对于开发者提交的代码不满意,需要回退一个版本,如何操作?
首先把windows凭据管理器中的密码删除。然后把仓库克隆到本地,git clone 仓库地址,由于克隆下来后就变成一个本地仓库了,可以使用本地仓库的版本控制方法来操作,发现本地仓库中的版本和克隆到本地的仓库版本是不一样的,本地仓库版本提交以后回增加版本,而克隆仓库的版本只有一个。所以这里我无法将远程仓库的版本回退,必须现在本地仓库进行版本回退,然后再次push,远程仓库只保留本地仓库的一个版本?
现在试试账号2也就是仓库拥有者能不能正常提交,假如时没有冲突的情况下。
随便新建了一个本地仓库,初始化,add,commit,push,输入账号2的用户名密码,发现报错了。
image
意思是要先fetch再push,也就是说再push之前仓库的版本要和远程仓库一致才行。那先fetch,fetch是下载到本地,接着还要合并冲突,merge报错了。试试pull,pull是fetch和merge的合并操作,还是报错,拒绝合共unrelated(无关的)历史。
换一个方案,直接clone远程仓库,在远程仓库中修改然后提交。提交成功了,签名还是之前随便设置的。
其实gitee也是一道墙,阻挡了没有gitee账号的人提交代码,同样,提交在一个仓库时必须要有该仓库的权限。提交代码时,修改要在远程仓库版本上进行,然后才能提交。最好的办法是先clone再修改再提交。
clone 和pull的区别
clone是在没有本地仓库时使用,clone命令会新建本地仓库,而pull是在有本地仓库时使用,需要解决冲突。

posted on 2022-01-04 16:34  小白成长变大神  阅读(62)  评论(0编辑  收藏  举报