Git远程仓库

Git远程仓库

  • 推送
  • 拉取
    • git fetch
    • git pull
  • 克隆

推送

Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。那要怎么实现这种分布呢?我们可以找一台电脑充当服务器,也就是扮演远程仓库的角色,一直都处于开机运行状态。其他人都从这台服务器上的版本库中将项目克隆到自己电脑上,每个人都可以克隆相同的项目,没有主次之分。大家做好的项目也可以各自提交推送到服务器的远程仓库中。

为了创建远程仓库,可以自己搭建一台Git服务器,或者借助github或gitee平台进行实操。由于gitee是国内的代码托管平台,操作起来阻碍更小,因此这里使用gitee平台的仓库作为远程仓库。

我在gitee平台上创建了一个名为mmf的远程仓库,同时在本地电脑上创建了一个mmf空目录,并在mmf目录中创建git仓库:

git init  # 创建git仓库
touch test.txt  # 创建一个test.txt文件
git add test.txt  # 将文件添加到暂存区
git commit -m "add a test.txt file"  # 将文件提交至本地仓库

然后使用以下命令将远程仓库与本地仓库进行关联:

git remote add origin https://gitee.com/aibc-hp/mmf.git
	git remote add -- 这是Git的一个基础命令,用于在本地仓库的远程仓库列表中添加一个远程仓库
	origin -- 这是添加的远程仓库的名字,可以根据个人喜好命名,通常使用“origin”作为默认名称
	https://gitee.com/aibc-hp/mmf.git -- 这是添加的远程仓库的URL,指定了远程仓库的地址

'''
这里的URL在结尾处添加了.git扩展名,这是因为大多数远程仓库服务提供商(如Gitee、GitHub等)要求在URL中包含.git扩展名来指示仓库的类型。

通过执行该命令,Git会将指定的远程仓库添加到本地仓库的远程仓库列表中,并将其命名为origin,这样我们就可以使用origin来引用该远程仓库,进行推送、拉取等操作。
'''

建立本地仓库和远程仓库的连接后,我们便可以使用以下命令将本地仓库的提交推送到远程仓库:

git push -u origin master
	git push -- 这是Git的一个基础命令,用于将本地仓库的提交推送到远程仓库
	-u -- 这是一个可选参数,用于将本地分支与远程分支进行关联,使用该参数后,下次推送时可以省略远程仓库和分支的名称
	origin -- 这是远程仓库的名称,即之前使用git remote add命令添加的远程仓库
	master -- 这是本地仓库的分支名称,通常是主分支
	
'''
通过执行该命令,Git会将本地仓库的提交推送到远程仓库的指定分支。如果使用了-u参数,Git还会将本地分支和远程分支进行关联,以便后续的推送和拉取操作可以更加简便。

使用git push命令,实际上就是将本地当前的master主分支推送到了远程,并与远程的master主分支进行合并。
'''

git push origin siam:object  # 将本地仓库的siam分支推送到origin远程仓库的object分支

如果添加远程仓库的时候地址写错了,或是想解除远程仓库与本地仓库的关联,可以使用git remote rm 命令。使用前,可以先用git remote -v查看远程仓库信息:

git remote -v  # 查看远程仓库信息
---------
origin  https://gitee.com/aibc-hp/mmf.git (fetch)
origin  https://gitee.com/aibc-hp/mmf.git (push)

然后根据远程仓库的名字来解除关联:

git remote rm origin  # 解除本地仓库与origin远程仓库的关联,即将origin从本地仓库的远程仓库列表中删除

注意: 这里这是解除了本地仓库与远程仓库的关联,并不是物理意义上的删除,远程仓库本身不会有任何影响。

拉取

我们想将远程仓库上的文件拉取下来,可以通过git fetchgit pull两个命令来进行操作。

git fetch

git fetch相当于是从远程仓库获取最新版本的项目到远程仓库的master主分支中,然后将远程的master主分支(包含最新版本的项目)拉取到本地仓库,但是不会自动合并到本地仓库内,也就是需要自己执行合并操作。

git fetch origin master  # 从远程仓库拉取最新版本的项目内容,origin是远程仓库的名称,master是远程仓库的分支

'''
通过执行git fetch这个命令,Git会与远程仓库进行通信,检查远程仓库的master分支是否有新的提交。如果有新的提交,Git会将这些提交下载到本地,并更新远程跟踪分支(如origin/master)的位置。但是,它不会自动将这些更新合并到当前本地分支。
'''

git merge origin/master  # 将远程的master合并到本地,origin/master是远程仓库的分支名称
git merge origin/master siam  # 将远程的master分支合并到本地的siam分支

'''
通过执行这个命令,Git会将远程仓库的origin/master分支的更改合并到当前所在的本地分支。这将把远程仓库的最新提交应用到当前分支,使得当前分支与远程仓库的master分支保持同步。
'''

git pull

git pull相当于是git fetchgit merge两者的结合体,可以从远程仓库拉取最新版本的内容,并直接合并到本地仓库的master主分支。

git pull [origin master]  # []中是可选内容,指定拉取哪个远程仓库中的哪个分支,默认为master
git pull origin master  # 拉取origin远程仓库的master分支到本地,并自动将其合并到本地的当前分支
git pull origin object:siam  # 拉取origin远程仓库中的object分支到本地,并将其合并到本地的siam分支

小结:

  • git fetch只是获取远程仓库的更新,不会自动合并;而git pull则会获取远程仓库的更新并自动合并到本地的当前分支。
  • 使用git fetch可以更加灵活地查看远程仓库的更新情况,并决定何时将其合并到本地分支。而git pull则是一种快捷方式,适用于你希望立即将远程分支的更新合并到当前分支的情况。
  • 可以使用git branch命令来查看本地仓库的分支列表
  • 可以使用git branch -r命令来查看远程仓库的分支列表

克隆

git clone https://gitee.com/aibc-hp/mmf.git  # 将远程仓库mmf克隆到本地

你可能感兴趣的:(Git,git,linux,服务器,命令行)