Git学习笔记:远程操作

远程操作

前面很多章节我们学习的都是本地操作,包括初始化仓库,增加删除修改文件,提交文件,还有版本回退,分支管理和标签管理。

今天这章节我们主要学习远程端的操作,主要有以下这几个操作:

git config
git clone
git pull
git push

今天这个文章主要时使用Gitee进行测试验证。关于如何申请注册Gitee账号以及创建Gitee仓库就不在这里讲了,大家不清楚的可以自行百度,都比较简单。

Git配置

首先在克隆远端代码前我们需要在Git配置远端的账号及邮箱信息:

git config --global user.name "xxxxxx"
git config --global user.email "xxxxxx@163.com"

一般情况第一次设置Git账号秘密都需要设置以下保存账户信息(用户名,密码),不然每次克隆或pull,push都需要重新出书用户名和密码,输入如下:

$git config  credential.helper store

克隆

git clone是远程版本库克隆到新创建的目录中,为克隆的存储库中的每个分支创建远程跟踪分支(使用git branch -r可见),并从克隆检出的存储库作为当前活动分支的初始分支。

codemaxi@codemaxi-PC:~/gitee$ git clone https://gitee.com/codemaxi/testgit.git
Cloning into 'testgit'...
Username for 'https://gitee.com': codemaxi
Password for 'https://codemaxi@gitee.com': 
remote: Enumerating objects: 621, done.
remote: Counting objects: 100% (621/621), done.
remote: Compressing objects: 100% (429/429), done.
remote: Total 621 (delta 188), reused 621 (delta 188), pack-reused 0
Receiving objects: 100% (621/621), 1.73 MiB | 513.00 KiB/s, done.
Resolving deltas: 100% (188/188), done.
codemaxi@codemaxi-PC:~/gitee$ 

这样代码就克隆下来了,该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名,可以将目录名作为git clone命令的第二个参数。我们上面没有加,所以生成的目录就是testgit了:

codemaxi@codemaxi-PC:~/gitee$ ls
testgit
codemaxi@codemaxi-PC:~/gitee$ cd testgit/
codemaxi@codemaxi-PC:~/gitee/testgit$ ll
total 16
drwxrwxr-x 4 codemaxi codemaxi 4096 May 30 15:40 ./
drwxrwxr-x 3 codemaxi codemaxi 4096 May 30 15:40 ../
drwxrwxr-x 3 codemaxi codemaxi 4096 May 30 15:40 apollo/
drwxrwxr-x 8 codemaxi codemaxi 4096 May 30 15:40 .git/
codemaxi@codemaxi-PC:~/gitee/testgit$ 

通过使用git branch -a可以查看当前所以的分支,包括本地的和远端的:

codemaxi@codemaxi-PC:~/gitee/testgit$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
codemaxi@codemaxi-PC:~/gitee/testgit$ 

git clone默认是取回master分支,如果需要,可以使用-b参数指定的分支。实际上, -b参数不仅支持分支名,还支持tag名等。

拉取

git pull命令用于从远程获取代码并合并本地的版本。
即将远程主机的某个分支的更新取回,并与本地指定的分支合并,完整格式可表示为:

$ git pull <远程主机名> <远程分支名>:<本地分支名>

如果远程分支是与当前分支一样,则冒号后面的部分可以省略:

codemaxi@codemaxi-PC:~/gitee/testgit$ git pull origin master 
From https://gitee.com/codemaxi/testgit
 * branch            master     -> FETCH_HEAD
Already up to date.
codemaxi@codemaxi-PC:~/gitee/testgit$ 

一般情况,项目多人协作开发时,大家都时基于某个develop分支进行并行开发,彼此在进行自己的逻辑编写,时间可能时几天或几周,在这期间你可能需要时不时的需要pull下远程develop分支上的同事的提交。这是个好的习惯,这样下去就可以避免你在一个无用的代码上进行长期的开发,回头来看这些代码不是新的代码。甚至是会面临很多冲突需要解决,而这个时候你可能还需要对冲突的部分代码进行测试回归,这就很麻烦了。

Push

git push命令用于将本地分支的更新,推送到远程主机。它的格式与git pull命令相似。

$ git push <远程主机名> <本地分支名>:<远程分支名>
# 举例:git push origin master:refs/for/master

如果本地分支名与远程分支名相同,则可以省略冒号:

git push <远程主机名> <本地分支名>
# 举例:git push origin master

注意:如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin --delete master

git push origin :refs/for/master 

下面命令表示,将本地的master分支推送到origin主机的master分支。如果master不存在,则会被新建。

codemaxi@codemaxi-PC:~/gitee/testgit$ git push origin master 
Username for 'https://gitee.com': codemaxi
Password for 'https://codemaxi@gitee.com': 
Counting objects: 621, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (617/617), done.
Writing objects: 100% (621/621), 1.73 MiB | 3.40 MiB/s, done.
Total 621 (delta 188), reused 0 (delta 0)
remote: Resolving deltas: 100% (188/188), done.
remote: Powered by GITEE.COM [GNK-5.0]
To https://gitee.com/codemaxi/testgit.git
 * [new branch]      master -> master
codemaxi@codemaxi-PC:~/gitee/testgit$ 

有时候我们需要将新建的分支push到远端,可以这样:

codemaxi@codemaxi-PC:~/gitee/testgit$ git branch develop
codemaxi@codemaxi-PC:~/gitee/testgit$ git branch 
  develop
* master
codemaxi@codemaxi-PC:~/gitee/testgit$ git branch -a
  develop
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
codemaxi@codemaxi-PC:~/gitee/testgit$ git checkout develop 
Switched to branch 'develop'
codemaxi@codemaxi-PC:~/gitee/testgit$ git branch 
* develop
  master
codemaxi@codemaxi-PC:~/gitee/testgit$ git pull origin master 
Username for 'https://gitee.com': codemaxi
Password for 'https://codemaxi@gitee.com': 
From https://gitee.com/codemaxi/testgit
 * branch            master     -> FETCH_HEAD
Already up to date.
codemaxi@codemaxi-PC:~/gitee/testgit$ git branch 
* develop
  master
codemaxi@codemaxi-PC:~/gitee/testgit$ 

上面的过程时:新建一个分支,切换到新建的分支,然后拉取其中某跟分支的code到这个分支,然后就可以在这个基础上进行修改,所有的修改都是在这个新的分支上进行而不会影响其他分支。当修改结束就可以进行add和commit了。然后就可以使用push将新建分支推送到远端,如下:

codemaxi@codemaxi-PC:~/gitee/testgit$ git push origin develop 
Username for 'https://gitee.com': codemaxi
Password for 'https://codemaxi@gitee.com': 
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-5.0]
remote: Create a pull request for 'develop' on Gitee by visiting:
remote:     https://gitee.com/codemaxi/testgit/pull/new/codemaxi:develop...codemaxi:master
To https://gitee.com/codemaxi/testgit.git
 * [new branch]      develop -> develop
codemaxi@codemaxi-PC:~/gitee/testgit$ 

这样我们再使用git branch -a命令就可以看到远端也有刚刚提交的分支了:

codemaxi@codemaxi-PC:~/gitee/testgit$ git branch -a
* develop
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/master
codemaxi@codemaxi-PC:~/gitee/testgit$ 

删除远程分支

我们上面有提到,删除远程分支跟删除本地分支是完全不一样的。
删除本地分支:

git branch -d develop

删除远程分支则是:

git push origin --delete branch

好了,今天关于Git远程部分的操作就到这里了。

最近工作需要学习了Git的基本使用,叨叨絮絮写了几篇文章,可能有很多不严谨的地方望理解。学习了这几篇文章工作中的日常使用基本不会有什么问题了。基本上Git的学习笔记系列文章就到这里了。当然如果后面还有使用上的问题也还会记录下面分享给大家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值