Git本地库和Github远程库推送、拉取和克隆操作指令及团队内协作和跨团队协作

简介: 介绍Git 本地库和 Github 远程库推送、拉取及克隆命令操作详细模拟实现了团队内协作和跨团队协作

前言


  • 本文概述:
  • 介绍Git 本地库和 Github 远程库推送、拉取及克隆命令操作
  • 详细模拟实现了团队内协作和跨团队协作

一、相关指令



1、创建远程库&创建别名(git remote add 别名 远程地址)


①、创建仓库(Repository)

建议远程库的名字和本地库相同

那么这个远程库 git-demo 就创建好了

②、查看当前所有远程库地址别名(git remote -v)

git remote -v

当前远程库地址没有别名

③、创建远程库别名(git remote add 别名 远程地址)

起别名原因:远程地址太长了,取个别名方便记忆

复制 HTTPS 对应链接,这个就是远程库的链接

git remote add git-demo https://github.com/Gnepuil79/git-demo.git

这里出现了两个别名,fetch和push意味着可以推送、拉取以及克隆


2、推送本地分支到远程库(git push 别名 分支)


报错了:


fatal: unable to access ‘https://github.com/Gnepuil79/git-demo.git/’: SSL certificate problem: unable to get local issuer certificate

  • 产生原因:一般是这是因为服务器的SSL证书没有经过第三方机构的签署,所以才报错
  • 解决方法:解除ssl验证后,再次git即可
    输入此条git命令
git config --global http.sslVerify "false"
git push git-demo master

此时弹出一个 Connect to GitHub弹窗,点击 Sign in with your browser

点击 Authorize git-ecosystem

然后就显示身份验证成功了

此时再看Git Bash即可看到推送本地分支到远程库成功的信息

浏览器页面刷新也可以看到 hello.txt

点进去可以看到具体内容


3、拉取远程库与本地分支合并(git pull 远程库地址别名 远程分支名)


①、先在远程库将 hello.txt 文件内容做以下修改

②、将修改的进行保存

③、回到Git Bash,拉取远程库到本地库

cat hello.txt
git pull git-demo master
cat hello.txt

可以看到拉取成功,且 hello.txt 在拉取前后内容发生了改变


4、克隆远程库到本地(git clone 远程地址)


①、在Git-Space目录下新建一个 xiaoming 文件夹

②、复制HTTPS的URL

③、克隆远程库到本地

在文件夹右键进入 Git Bash

git clone https://github.com/Gnepuil79/git-demo.git
ll

可以看到克隆成功

clone和pull不需要登录帐号,公共库的读取权限没有限制

不需要初始化本地库

与pull的区别:pull要求本地已经有文件

clone 会做如下操作:1、拉取代码。2、初始化本地仓库。3、创建别名


二、团队内协作


需要两个 Github 账号,进行团队内协作

我们这里使用两个账户分别为 Gnepuil79 和 Nuyoah6

建议使用两个不同的浏览器分别登陆不同的账号


我们实现的功能是 在 Git-Space/xiaoming/git-demo(从上文可知是从远程库克隆过来的)中将修改后的 hello.txt 推送到 Gnepuil79 远程库,然后在 Git-Space/git-demo 中从Gnepuil79 远程库拉取与本地分支合并,这样就属于团队内协作


具体操作:

将 Nuyoah6 用户加入到 Gnepuil79 的团队

1、谷歌浏览器登录 Gnepuil79 的 github 账号

git-demo->Setting->Collaborators->Add people

加入 Nuyoah6 用户,复制Pending Invite邀请函

2、Microsoft Edge浏览器登录 Nuyoah6 的 github 账号并在 github 的地址栏输入刚刚复制的 Pending Invite邀请函

点击接受邀请

这样 Nuyoah6 用户就加入到 Gnepuil79 的团队了,并可以

3、基于上面创建的 xiaoming 文件夹进入到 git-demo 打开 Git Bash,修改 hello.txt 并修改内容,并将本地文件添加到暂存区,并提交到本地库。

cd git-demo
vim hello.txt
git status
git add hello.txt
git commit -m "xiaoming modify" hello.txt

将本地分支内容推送到远程库

git push https://github.com/Gnepuil79/git-demo.git master

这样 Gnepuil79 和 Nuyoah6 用户登录 github 查看git-demo/hello.txt 都可以看到所做的修改


4、回到之前的 Git Bash 中(/d/Git-Space/git-demo)

拉取远程库与本地分支合并

cat hello.txt
git pull git-demo master
cat hello.txt

这样就模拟实现了团队内协作


三、跨团队协作


需要三个 Github 账号,进行跨团队协作

我们这里使用两个账户分别为 Gnepuil79 和 Nuyoah6 和 BuNaNa-yy

建议使用三个不同的浏览器分别登陆不同的账号

Gnepuil79 和 Nuyoah6 属于一个团队,BuNaNa-yy属于团队外成员

我们实现的功能是邀请团队外的用户 BuNaNa-yy 对代码进行修改,我们再将修改后的代码拉取过来,这就属于跨团队协作


1、将远程仓库的地址复制发给邀请跨团队协作的人,比如 BuNaNa-yy

首先用火狐浏览器登录 BuNaNa-yy github账号,然后搜索 Gnepuil79/git-demo 找到Gnepuil79 开发的git-demo

2、点击 fork,将 Gnepuil 的项目代码叉到 BuNaNa-yy 账号里面来

点击create fork

3、直接在 web 端进行修改

commit changes

现在 BuNaNa-yy 修改的代码只有自己可以看得到,接下来是通知 Gnepuil79

把修改后的代码拉回去.

点击 pull requests->New pull request->Create pull request

4、用谷歌浏览器登录 Gnepuil79 github账号,可以看到来自 BuNaNa-yy 的 Pull requests

5、火狐浏览器打开 BuNaNa-yy github账号可以看到对面的回话,接着 BuNaNa-yy 回复快合入吧

6、谷歌浏览器登录 Gnepuil79 github账号,可以看到对面的回话,然后合入代码

Merge pull request->confirm merge

执行后可以看到这样一个合入信息,证明成功合入

7、查看 Gnepuil79的git-demo/hello.txt,可以发现hello.txt是修改后的了

这样就模拟实现了跨团队协作


目录
相关文章
|
2天前
|
测试技术 持续交付 开发工具
掌握 Git 工作流:高效团队协作的关键
【10月更文挑战第22天】本文介绍了 Git 工作流的核心概念和最佳实践,包括分支策略、提交信息、代码审查和合并策略等。通过优化这些环节,可以提高代码管理效率,促进团队成员之间的有效沟通,从而提升团队整体的开发效率。适合开发者和团队管理者阅读。
|
4天前
|
网络安全 开发工具 git
解决fatal:remote error:You can’t push to git://github.com/username/*.g
通过上述诊断与修复步骤,绝大多数的推送错误都能得到有效解决,确保您的Git工作流顺畅无阻。
7 1
|
15天前
|
Unix Shell 网络安全
git学习六:(bug总结)git@github.com: Permission denied (publickey).等
本文是关于解决在使用Git和GitHub时遇到的“git@github.com: Permission denied (publickey)”错误的指南。文章提供了详细的步骤,包括确认SSH Agent运行状态、检查密钥配置、确保密钥匹配、验证仓库URL、检查权限和代理设置,以及配置SSH文件。这些步骤帮助用户诊断并解决SSH认证问题。
39 0
|
2月前
|
测试技术 持续交付 开发工具
掌握 Git 钩子:提升代码质量和团队协作效率
Git 钩子是一种强大的机制,可在特定操作时自动执行脚本,增强代码审查、自动化测试和持续集成流程。本文介绍 Git 钩子的工作原理、配置方法及其在提升代码质量和团队协作效率方面的应用,包括常用的 `pre-commit`、`post-commit`、`pre-push` 和 `post-receive` 钩子类型,并提供了一个使用 ESLint 的 `pre-commit` 钩子示例。通过自动化常见任务,Git 钩子能显著减少人为错误,提高开发效率。
|
2月前
|
测试技术 持续交付 开发工具
掌握 Git 钩子:提升代码质量和团队协作效率
在软件开发中,保证代码质量和团队协作至关重要。Git 钩子通过在特定操作(如提交、推送)时自动执行脚本,增强了代码审查、自动化测试和持续集成。常见钩子类型包括 `pre-commit`、`post-commit`、`pre-push` 和 `post-receive`。通过配置这些钩子,开发者可以实现代码风格检查、自动化测试和自动部署等任务,从而提升代码质量和团队协作效率。例如,`pre-commit` 钩子可用于运行 ESLint 检查 JavaScript 代码风格,确保每次提交都符合编码规范。
|
2月前
|
开发工具 git 开发者
掌握版本控制的艺术:Git 与 GitHub 的高效使用指南
在软件开发中,版本控制对于代码管理和团队协作至关重要。本文详细介绍了 Git 的核心概念与命令,包括初始化、创建仓库、文件跟踪、分支管理和远程仓库操作。同时,探讨了如何利用 GitHub 进行项目组织、代码审查及自动化工作流。通过遵循最佳实践,如频繁提交、清晰的信息记录和合理使用分支,开发者可以提升工作效率和团队协作能力,确保项目的持续成功。
|
2月前
|
Shell 网络安全 开发工具
Git,GitHub,Gitee&IDEA集成Git
Git提交项目到GitHub简洁版、版本控制、安装、常用命令、分支、团队协作机制、Github、Gitee远程仓库、IDEA集成Git、IDEA集成Github、IDEA集成Gitee
Git,GitHub,Gitee&IDEA集成Git
|
2月前
|
Shell 网络安全 开发工具
fatal: unable to access 'https://github.com/wolfcw/libfaketime.git/': Encountered end of file
fatal: unable to access 'https://github.com/wolfcw/libfaketime.git/': Encountered end of file
|
4月前
|
网络安全 开发工具 git
【git】解决git报错:ssh:connect to host github.com port 22: Connection timed out 亲测有效
【git】解决git报错:ssh:connect to host github.com port 22: Connection timed out 亲测有效
901 1
|
4月前
|
网络安全 开发工具 git
使用git克隆仓库报错:Warning: Permanently added‘github.com’ to the .....(ssh )
所以,你可以安全地忽略这个警告,它不会影响到你使用git克隆仓库。如果你已经成功克隆了仓库,那么一切都在正常工作。如果你在克隆过程中遇到其他问题,那可能需要查看具体的错误信息来解决。
83 0