六分部 發表於 2023-9-8 15:30:00

github操作小白手把手教程|Linux从远程项目拉取到本地并更新代码上传到远程|github协同开发

<p>当你在github或者团队中需要用github管理项目时,没有接触过github的人如何从0开始配置电脑连接github远程仓库,并把项目中的代码拉取到本地电脑中,然后进行修改并上传到远程项目中实现项目管理。</p>
<h2 id="一linux连接github">一、Linux连接github</h2>
<h3 id="安装git">安装git</h3>
<ol>
<li>打开终端</li>
<li>sudo apt-get update</li>
<li>sudo apt-get install git</li>
</ol>
<h3 id="连接github">连接github</h3>
<ol>
<li>
<p>输入以下指令<br>
ssh-keygen -t rsa -C "your_email@youremail.com" (一直Enter安装)<br>
cd /root/.ssh<br>
sudo gedit id_rsa.pub</p>
</li>
<li>
<p>在网页中进入如下界面,并复制上面文件中的key放到指定处<br>
<img src="https://img2023.cnblogs.com/blog/2103493/202308/2103493-20230802145558181-1243569080.png" alt="" loading="lazy"><br>
<img src="https://img2023.cnblogs.com/blog/2103493/202308/2103493-20230802145629863-874440641.png" alt="" loading="lazy"><br>
<img src="https://img2023.cnblogs.com/blog/2103493/202308/2103493-20230802145705659-1280343559.png" alt="" loading="lazy"><br>
<img src="https://img2023.cnblogs.com/blog/2103493/202308/2103493-20230802145727218-145858389.png" alt="" loading="lazy"><br>
<img src="https://img2023.cnblogs.com/blog/2103493/202308/2103493-20230802145806294-1211377989.png" alt="" loading="lazy"></p>
</li>
<li>
<p>回到终端验证是否绑定本地成功,输入指令<br>
ssh -T git@github.com<br>
输入yes<br>
然后就OK了</p>
</li>
<li>
<p>配置个人信息,在终端输入指令<br>
git config --global user.name "yourname"<br>
git config --global user.email "youremail"</p>
</li>
</ol>
<h2 id="三关联github上的项目库">三、关联github上的项目库</h2>
<h3 id="1-创建本地文件夹">1. 创建本地文件夹</h3>
<p>在本地创建一个文件夹,存放远程仓库要拉下来的代码,然后进入该目录。以下是创建文件并进入文件用的指令</p>
<pre><code>sudo mkdir xxx(文件名)
cd xxx
</code></pre>
<h3 id="2-fork项目">2. fork项目</h3>
<p>在github网站上fork项目的源远程仓库到自己的仓库中,这么做的好处是:<br>
每个开发者所fork的仓库是完全独立的,互不干扰,甚至与源仓库都无关。每个开发者仓库相当于一个源仓库实体的影像,开发者在这个影像中进行编码,提交到自己的仓库中,这样就可以轻易地实现团队成员之间的并行开发工作。而开发工作完成以后,开发者可以向源仓库发送pull request,请求管理员把自己的代码合并到源仓库中,这样就实现了分布式开发工作,和最后的集中式的管理。</p>
<p>具体fork按钮:<br>
<img src="https://img2023.cnblogs.com/blog/2103493/202309/2103493-20230914141815986-1881737073.png" alt="" loading="lazy"></p>
<h3 id="3-复制git链接">3. 复制git链接</h3>
<p>在自己的开放者仓库下,复制git链接<br>
<img src="https://img2023.cnblogs.com/blog/2103493/202308/2103493-20230802150706382-1658212428.png" alt="" loading="lazy"><br>
<img src="https://img2023.cnblogs.com/blog/2103493/202308/2103493-20230802150734760-273165983.png" alt="" loading="lazy"><br>
点此处表示复制了git链接了</p>
<h3 id="4-克隆到本地目录中">4. 克隆到本地目录中</h3>
<p>在终端:</p>
<pre><code>cd到第一步创建的目录下
git clone 第三步的git链接
</code></pre>
<blockquote>
<p>如果需要拉去指定分支的代码,即clone命令为: <code>git clone -b dev git链接</code>,其中dev为分支名字。<br>
PS: 如果在git clone时遇到fatal: unable to access 'https://github.com/xxx.git/': GnuTLS recv error (-110): The TLS connection was non-properly terminated.<br>
解决方法:<br>
<code>sudo apt-get install gnutls-bin</code><br>
<code>git config --global http.sslVerify false</code><br>
<code>git config --global http.postBuffer 1048576000</code></p>
</blockquote>
<h3 id="5-验证身份">5. 验证身份</h3>
<p>进行git clone这一步的时候会要求你验证身份<br>
Username for 'https://github.com': 输入的是github上的邮箱账号, 而不是github中设置的username<br>
Password for 'https://你的github邮箱@github.com': 输入token,而不是密码</p>
<blockquote>
<p>PS: token获取路径:<br>
<img src="https://img2023.cnblogs.com/blog/2103493/202308/2103493-20230802151406147-933149078.png" alt="" loading="lazy"><br>
<img src="https://img2023.cnblogs.com/blog/2103493/202308/2103493-20230802151424592-1198533109.png" alt="" loading="lazy"><br>
<img src="https://img2023.cnblogs.com/blog/2103493/202308/2103493-20230802151441628-114573590.png" alt="" loading="lazy"><br>
<img src="https://img2023.cnblogs.com/blog/2103493/202308/2103493-20230802151501875-991569413.png" alt="" loading="lazy"><br>
随便写用途,有效期自己设置,然后全部勾选,点击generate。<br>
<strong>生成的token要复制下来,用一个txt文件存起来,因为token只在这个时候会显示,后面再点开看是看不到这个token的。</strong></p>
</blockquote>
<h2 id="四构建功能分支进行开发">四、构建功能分支进行开发</h2>
<p>这个博主把github协同开发管理说的嘎嘎好<br>
大概意思就是源仓库维护两个分支:master分支和develop分支。</p>
<p>master分支的代码是经过测试、稳定的分支。</p>
<p>develop分支就是各个开发者在自己开发者仓库(fork的仓库)里开发完成后放在这里的分支,该分支的代码稳定(因为开发者在自己仓库里面已经是测试过了那部分代码没问题之后才能合并develop分支里面的),但是还没有经过源仓库的管理者测试好,认可的代码。<br>
<img src="https://img2023.cnblogs.com/blog/2103493/202309/2103493-20230914144814741-71967297.png" alt="" loading="lazy"></p>
<p>在协同开发中,每个开发者在自己的开发者仓库里面,就可以创建一些临时性分支,比如feature branch(功能分支)、release branch(预发布分支)、hotfix branch(bug修复分支),这些分支的意思就是先不在develop分支上直接就进行一个开发,创建一个临时的分支开发,然后测试后觉得没问题,就可以提交到自己的开发者仓库里面的develop分支,然后就可以删除掉这些临时性分支。</p>
<p>提交到自己的开发者仓库之后,就可以向管理者发出pull request请求,请求合并到源仓库的develop分支中。</p>
<p>所以,整体的流程就可以归纳为如下:</p>
<h3 id="1-先进行代码开发修改">1. 先进行代码开发修改</h3>
<h3 id="2-在终端切换分支提交推送">2. 在终端切换分支、提交、推送</h3>
<pre><code>cd到本地仓库目录下
git checkout develop# 切换到自己开发者仓库的develop分支
git checkout -b feature# 在develop分支下分出一个功能性分支
git add .# 添加当前目录下的所有文件到暂存区
git commit -m 'xxx'# 将暂存区内容添加到仓库中,xxx描述这个修改,方便其他开发者知道你做了什么。这个时候都是在新的feature分支里面,相当于这时候的代码是提交在这个分支下的。
git checkout develop# 回到develop分支
git merge --no-ff feature# 把做好的功能合并到develop中,--no-ff参数表示禁用Fast forward
git branch -d feature-discuss# 删除功能性分支(也可以不删)
git push origin develop# 把develop分支提交到自己的远程仓库中
</code></pre>
<p>这时候,你上自己github的项目主页中develop分支中看看,已经是当前版本的项目了。</p>
<blockquote>
<p>合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。</p>
</blockquote>
<p>当然,你还可能对自己的develop进行了多次合并,完成了多个功能,经过测试以后,觉得没问题,就可以在github网站上面看到有一个可以请求管理员把自己仓库的develop分支合并到源仓库的develop分支中,这就是pull request。</p>
<h3 id="3-pull-request将开发者仓库的分支推到源仓库的对应分支">3. pull request(将开发者仓库的分支推到源仓库的对应分支)</h3>
<p>点开自己仓库首页就可以看到会提示说跟源仓库相比有更改,如下<br>
<img src="https://img2023.cnblogs.com/blog/2103493/202309/2103493-20230915112524472-207609593.png" alt="" loading="lazy"><br>
点击进去之后就会有一个pull request。<br>
pull request会要求写一下合并的原因,然后就写上自己修改或者添加的功能,然后就可以提交。管理者就会去审核。</p>
<ul>
<li>如果源仓库里面管理者已经把你也设成管理员,你自己提交pull request之后,可以直接就通过自己的提交,类似commit -m一样用简单的语句写一下此次合并的描述,然后就可以了。</li>
<li>如果你不是管理员,后面就是管理者的工作了,可以看这里的Step 6。</li>
</ul><br><br>
来源:https://www.cnblogs.com/3-louise-wang/p/17600992.html
頁: [1]
查看完整版本: github操作小白手把手教程|Linux从远程项目拉取到本地并更新代码上传到远程|github协同开发