Git-远程操作

目录

一、分布式版本控制系统

二、远程仓库

新建远程仓库:

设置用户名和邮箱:

向远程仓库推送:

拉取远程仓库:

给命令配置别名:

标签管理:

删除标签:

推送标签到远程:


一、分布式版本控制系统

我们⽬前所说的所有内容(⼯作区,暂存区,版本库等等),都是在本地!也就是在你的笔记本或者计算机上。⽽我们的 Git 其实是分布式版本控制系统!

可以简单理解为,我们每个⼈的电脑上都是⼀个完整的版本库,这样你⼯作的时候,就不需要联⽹了,因为版本库就在你⾃⼰的电脑上。既然每个⼈电脑上都有⼀个完整的版本库,那多个⼈协作的时候,只需把各⾃的修改推送给对⽅,就可以互相看到对⽅的修改了。分布式版本控制系统的安全性要⾼很多,因为每个⼈电脑⾥都有完整的版本库,某⼀个⼈的电脑坏掉了不要紧,随便从其他⼈那⾥复制⼀个就可以了。但这有个前提就是大家的设备要在同一个局域网内,当不再同一个局域网内时,两台电脑是无法进行互相访问的,或者是对方的电脑根本就没有开机,也是无法进行这些操作的。

因此,分布式版本控制系统通常也有⼀台充当**"中央服务器**"的电脑,但这个服务器的作⽤仅仅是⽤来⽅便"交换"⼤家的修改,没有它⼤家也⼀样⼲活,只是交换修改不⽅便⽽已。有了这个"中央服务器"的电脑,这样就不怕本地出现什么故障了。

二、远程仓库

Git 是分布式版本控制系统,同⼀个 Git 仓库,可以分布到不同的机器上。刚开始,只有⼀台机器有⼀个原始版本库,此后,别的机器可以 "克隆" 这个原始版本库,也可以推送代码到Git仓库,⽽且每台机器的版本库其实都是⼀样的,并没有主次之分。

⼀台电脑上也是可以克隆多个版本库的,只要不在同⼀个⽬录下,但这样没有意义,实际情况往往是找⼀台电脑充当服务器的⻆⾊,每天24⼩时开机,其他每个⼈都从这个"服务器"仓库克隆⼀份到⾃⼰的电脑上,并且各⾃把各⾃的提交推送到服务器仓库⾥,也从服务器仓库中拉取别⼈的提交。

在使用的时候,可以自己搭建一个Git仓库。当前学习阶段,可以先使用gitup管理平台,只要注册账号,就可以创建自己的远程仓库。

新建远程仓库:

1.创建远程仓库:

1.填写仓库名

2.仓库介绍

3.可以选择自己的仓库是开源的或私有

4.可以勾选初始化仓库,

选择语言:选择一个自己使用的语言,

.gitignore: 在⽇常开发中,我们有些⽂件不想或者不应该提交到远端,⽐如保存了数据库密码的配置⽂件,那怎么让 Git 知道呢?在 Git ⼯作区的根⽬录下创建⼀个特殊的 .gitignore ⽂件,然后把要忽略的⽂件名填进去,Git 就会⾃动忽略这些⽂件了。

可以在创建仓库的时候勾选上该文件,Git为你自动配置,也可以自己创建.gitignore文件,然后提交到远端即可。

Issue模版:

Pull Request模版:

点击创建。

刚创建的仓库有且只有⼀个默认的master分⽀。

可以自己创建分支

2.克隆远程仓库:

克隆远程仓库下载到本地,使用git clone命令,后面跟上远程仓库的地址

有这里中克隆方式:

前两种是最常用的,SSH 协议和 HTTPS 协议是 Git 最常使⽤的两种数据传输协议。SSH 协议使⽤了公钥加密和公钥登陆机制,体现了其实⽤性和安全性,使⽤此协议需要将我们的公钥放上服务器,由 Git 服务器进⾏管理。使⽤ HTTPS ⽅式时,没有要求,可以直接克隆下来。

使用HTTPS协议:

在Linux-ubuntu系统上:

HTTPS方式克隆成功。

使用SSL方式克隆:

由于复制的是同一个仓库,会发生名字冲突,要将刚复制过的文件先删除:

复制SSL地址:

克隆到"git test"中。..

git@gitee.com:权限被拒绝(公钥)。

致命:无法从远程存储库读取。请确保您拥有正确的访问权限,并且存储库存在。

使用SSL方式克隆时,第一次需要先配置公钥:

先执行下面这行代码:

公钥和私钥已经生成公钥:在/root/.ssh/id_rsa.pub文件中,根据路径找到,并复制公钥。

配置好公钥后,再执行克隆命令:

克隆远程仓库成功。

当我们从远程仓库克隆后,实际上 Git 会⾃动把本地的 master 分⽀和远程的 master 分⽀对应起来,并且,远程仓库的默认名称是 origin 。在本地我们可以使⽤ git remote 命令,来查看远程库的信息:

使用git remove -v查看更详细的信息:

显示的是向远程origin拉取和推送的地址。

设置用户名和邮箱:

向远程仓库推送:

向远程仓库推送一个文件:

通过git push命令,向远程推送内容:

复制代码
git push [远程主机名] [本地分支名]:[远程分支名]
git push origin master:master

# 如果本地分⽀名与远程分⽀名相同,则可以省略冒号:
git push <远程主机名> <本地分⽀名>
git push origin master

这里将本地master分支推送到远程origin主机的master分支,Git已经拉取了关联,可以使用git push命令进行推送。

查看一下远程仓库:

代码已推送到了远端:

当要删除推送到远程的内容时,通过git push <y远程主机名> :<远程分支名>命令即可删除.

拉取远程仓库:

有时别人提交到仓库的内容,自己需要使用,可以拉取远程仓库内容,同步到自己的本地仓库.

可以通过点击远程仓库上的fork按钮,进行拉取,

也可以在自己的本地仓库终端使用git pull命令进行拉取.

复制代码
git pull <远程主机名> <远程分⽀名>:<本地分⽀名>
git pull origin master:master

# 如果远程分⽀是与当前分⽀合并,则冒号后⾯的部分可以省略。
git pull <远程主机名> <远程分⽀名>

给命令配置别名:

有时一些git的命令非常的长或非常复杂,可以通过给命令配置别名的方式,简化命令.

复制代码
git config [--global] alias:别名  git原命令 //可以配置全局的,也可以单独对所在分支配置

给git status命令配置为git st:

git config --global alias:st status

标签管理:

对每次提交并推送到远程的以次项目,都可以设置一个标签,标签就相当于一个版本,可以通过标签回退到某次提交的版本.

创建标签:通过git tag 命令,即可创建标签:

复制代码
git tag 标签名 //为当前分支创建一个标签

git tag命令,用于查看所有标签

默认标签是打在最新提交的 commit 上的.若想要为指定提交版本打标签,要先找到要打标签的commitID,然后通过 git tag 标签名 commitID 命令为指定版本打标签.

git还提供了带有说明的标签:

复制代码
git tag -a [name] -m "XXX" [commit_id] //-a:标签名 -m:描述信息 要指定commitID

查看标签信息,通过git show命令:

复制代码
git show 标签名 //查看指定标签的信息

删除标签:

即使标签打错了,也是可以删除的,因为标签值保存到了本地,不会自动推送到远程.

通过git tag -d命令删除标签:

复制代码
git tag -d 标签名  //删除指定标签

推送标签到远程:

通过git push <远程主机名> 标签名 命令推送:

查看一下远程是否推送成功:

当一次打了很多标签时,可以通过git push origin --tags命令一次性推送到远程.