Git 团队协作项目操作说明

发布于 2024-09-30 23:49:07 字数 7348 浏览 22 评论 0

一、如何参与该项目

项目要求

  • 文件(夹) 命名格式
    • Leetcode 题放在 Leetcode_EveryDay 目录下,后期可以考虑添加剑指 offer、面经、每日分享等目录
    • 按题分成不同文件夹,文件夹命名格式为 Topic+题号-英文题名 ,如 Topic1-two-sum
    • 你刷的题请放在对应文件夹下,如果仓库中还没有的题,请新建对应文件夹,并在文件夹下添加 README.md (最好是中英文题目内容+链接)
    • 刷的题请以 from-<github 昵称>-题名.java 格式命名,C++则以 cpp 结尾,github 昵称用来区分不同提交
  • 加入项目的小伙伴只能操作自己的文件,不要删除其他人的文件(即 不要删除从原项目 clone 的内容 ,不要删除从原项目 clone 的内容,不要删除从原项目 clone 的内容)
  •  

二、clone 项目到本地

如图,最好选择 ssh

深度截图_选择区域_20190503174907

然后选择一个文件夹,通过 git clone [复制的链接] 将项目下载到本地(前提是已经装了 git,linux、mac 直接终端,Windows 用 git shell 或 git Desktop)

1556878717809


三、设置 fork 的项目与原项目同步

命令行方式(推荐)

先看下仓库下有什么,然后开始配置

1556884056058

查看所有分支, git branch -a

1556883688122

查看所有远程仓库, git remote -v

1556883671229

添加一个上游分支,指向原项目,即 git@github.com:josonle/Leetcode-solution-for-us.git

git remote add upstream git@github.com:josonle/Leetcode-solution-for-us.git

再次查看远程仓库,多了一个

1556883986766

先抓取上游分支的更新到本地, git fetch upstream ,upstream 是上面新建上游分支名

如下图,并且多了一个分支,本地分支 master,两个远程分支其中一个是源项目的

1556884308437

合并原项目的远程分支,然后 push 到自己 fork 的项目上去

git merge upstream/master

1556884626871

git push origin master

1556884677828

本地仓库里和网页上查看都更新了原项目的内容,如图

1556884770319

直接在 Web 页面操作

点击 compare

1556944982177

选择从原项目的 master 分支同步到 fork 项目(这里是 another-Lee/xxx)的 master 分支

1556945256521

1556945314176

1556945414408

其实上面的内容就是 fetch 原项目的更新内容,并对 fork 项目 pull request,操作如下图

1556945533185

1556945641117

1556945756926

然后再 Confirm merge,即可。如图,更新已同步

1556945820141

四、fork 的项目如何 pull request 到原项目

这里我们在 another-Lee 的本地仓库新建一个文件夹 Topic2-add-two-numbers强调必须以【 Topic+题号+英文题名 】命名 ,里面随便放点啥,比如 from-anotherLee-add-two-numbers.java再次强调,提交文件以【 from-<github 昵称>-题名.java 】命名,如果是 C++就用 cpp 结尾

1556885297319

先提交并推送到自己仓库去

$ git add .
$ git commit -m"from another-Lee:添加 addTwoNumbers"
$ git push origin master 

强调,提交信息,必须是 from <github 昵称>:xxx 格式

网页上打开查看,如图是我们刚刚推送的更新

1556885669473

然后重点来了,向原项目 pull request

1556885795335

然后创建 pr

1556885939394

注意分支信息要设置的没问题,然后填写提交信息,标题最好不要修改(默认是 commit 信息)

1556886206847

然后 pull request 就结束了,后续就是我负责审核代码,并 merge 到原项目中去,fork 的项目也无法修改 pr 内容

到此就结束了,以下是介绍 Master 如何审核代码,处理 pr


原项目审核并处理 pull request

打开项目,可以发现 pr 有提示,然后我们可以查看更改的文件,给出审核结果

1556886589539

如图审核结果有三种:

  • 评论,未经明确批准即提交一般反馈
  • 批准,提交反馈并批准合并这些更改
  • 请求更改,提交在合并之前必须解决的反馈

通过后,合并 pr,如图点击 Merge pull request,然后 confirm merge

1556886824092

最后,就这样了,项目中也多了 another-Lee 的 pr 过来的代码

1556887053275

1556887129427

附录

显示 git 配置信息

git config --global --list 显示全局配置信息,一般是提交用户的用户名和邮箱

# 可通过如下设置
git config --global user.name "username"
git config --global user.email "test@qq.com"

git config --local --list 显示当前仓库配置信息

git config --system --list 显示系统配置信息

解决本地多个 ssh key 问题

在 ssh-keygen 生成公私钥时通过 -f 参数指定生成文件的名称

多个 git 账号管理

清除全局 git 配置信息,就是 user.name 和 user.email 哪些,因为一个全局的配置只能为一个账号服务,两个账号验证时会冲突

git config --global --unset user.name
git config --global --unset user.email

在本地仓库里配置新的 name 和 email,不同账号区别开

git config user.name "xxx"
git config user.email "xxx@qq.com"

配置不同 ssh-key( -f 可以指定生成文件名),并在 /.ssh 下新建 config 文件,内容参考如下

Host git@github.com #随便取和下面区别即可
HostName github.com
User josonlee
IdentityFile ~/.ssh/id_rsa_github #指定验证文件

Host anothergithub.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_another

验证:

1556882392939

配置项目新的 remote 作用域

git remote rm origin #清空原有的
git remote add origin git@anothergithub.com:another-Lee/Leetcode-solution-for-us.git #举例第二个账号,网页上 git clone 处链接是`git@github.com:another-Lee/Leetcode-solution-for-us.git`,只是把 git@github.com 改成了 git@anothergithub.com(config 文件中指定的)

随便修改下啥然后提交 git push origin master

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

无妨#

暂无简介

0 文章
0 评论
25 人气
更多

推荐作者

daid

文章 0 评论 0

我心依旧

文章 0 评论 0

晒暮凉

文章 0 评论 0

微信用户

文章 0 评论 0

DS

文章 0 评论 0

〆凄凉。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文