通过 Git 将代码提交到 GitHub-下
在「通过 Git 将代码提交到 GitHub(上)」一文中,我们已经介绍了向 GitHub 提交代码时的第一种情况,即:
- 第一种:本地没有 Git 仓库,这时我们可以直接将远程仓库
clone
到本地。通过clone
命令创建的本地仓库,其本身就是一个 Git 仓库了,不用我们再进行init
初始化操作啦,而且自动关联远程仓库。我们只需要在这个仓库进行修改或者添加等操作,然后commit
即可。
接下来,我们继续介绍向 GitHub 提交代码时可能遇到的第二种情况,即:
- 第二种:本地有 Git 仓库,并且我们已经进行了多次
commit
操作。
仍然以博主的开源项目为例,HelloWorld
项目进行演示。首先,建立一个本地仓库,命名为springmvc-hello
:
如上图所示,进入该仓库,进入init
初始化操作:
然后,输入git remote add origin https://github.com/javaxubo/HelloWorld.git
命令,关联远程仓库(在此,默认大家都知道如何获取远程仓库的地址),其中origin
为远程仓库的名字:
输入git pull origin main
命令,同步远程仓库和本地仓库:(暂时解释不了为啥这里不显示main而是显示master了,好像是自动创建的.想看解释点击这里)
再回到本地springmvc-hello
仓库,看看我们是否已经把远程仓库的内容同步到了本地:
如上图所示,显然我们已经把远程HelloWorld
仓库里面文件同步到了本地仓库。接下来,在本地仓库新建一个名为test.txt
的测试文件:
输入git add
和git commit
命令,将文件test.txt
添加并提交到springmvc-hello
仓库:
再输入git push origin main
命令,将本地仓库修改(或者添加)的内容提交到远程仓库:
如上图所示,我们已经将本地仓库的内容同步到了远程仓库。下面,我们进入远程HelloWorld
仓库的页面,看看我们的提交结果:
主分支main没有本次提交
我上面的代码是自动创建多出来一个master分支,并且我这次提交的文件test.txt是存在与master分支,主分支目前是没有test.txt文件的,还需要我们进一步去合并分支.这样main分支才能有我们提交的代码.当我去阅读完这段解释之后我好像有点理解了,但是目前不清楚这种情况是不是我现在遇到的问题
为什么我们在派生GitHub存储库时要创建一个新分支
这不是一个技术要求。相反,将不完整的代码排除在主分支之外是一种很好的工作实践。
通过在新的分支上工作,您可以保存和测试您的进度(提交到分支),而不会影响主分支。这提供了一个安全的工作区,在您准备合并回到main之前,它不会中断main分支。
当您对分支上的工作感到满意时,您可以合并回到主分支。
如果你不想保留你的分支,这也使得丢弃它变得很容易。删除新分支不会影响主分支上发生的任何工作。
如果你是唯一一个在这个项目上工作的人,这可能看起来很愚蠢。这仍然是一种很好的做法。较大的项目将在主分支上进行活动,并且不应该包括不完整或未经测试的代码。将草稿放在工作分支上,而不放在主分支上。
合并分支命令请点击这里,合并分支之后我们可以在main主分支上看到新增的文件了.
如上图所示,我们已经将「通过 Git 将代码提交到 GitHub」的第二种情况演示完毕。
此外,在本篇博文中,我们将远程仓库命名为origin
,本地仓库名为springmvc-tutorial
,其实两者的名字咱们可以随意取,一般来说,我们习惯性将远程仓库命名为origin
,不过在需要关联多个远程仓库的时候,就需要我们再取别的名字啦!
最后,再强调一遍:在我们向远程仓库提交代码的时候,一定要先进行pull
操作,再进行push
操作,防止本地仓库与远程仓库不同步导致冲突的问题,尤其是第二种提交代码的情况,很容易就出现问题。