Git仓库使用

一、推送本地库到远程库

1、新建库,并创建测试文件 test.txt

2、设置用户信息

git config --local user.name 'simple'

git config --local user.mail 'simple@163.com'

3、关联本地库与远程仓库

git remote add origin <远程仓库连接>

添加后,远程库的名字就是origin,这是Git默认的名字,也可以改成别的,但是origin这个名字⼀看就知道是远程库。下一步,就可以把本地库的所有内容推送到远程库上:

git push -u origin master

第一次推送时,远程库和本地库并不同步,需要先拉取远程库到本地库才能推送,远程库默认创建了README.md 和 .gitignore 文件

处理完冲突后,来到这一步

git push -u origin master

第⼀次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master 分支关联起来

只要本地作了提交,就可以通过命令:

git push origin master

把本地 master 分支的最新修改推送至远程仓库

git remote show 查看远程仓库

origin相当于远程仓库的链接别名

git remote show origin 查看远程仓库明细

上面命令展示了origin的详细信息,

Fetch URL:远程拉取的url

Push URL:push推送的url

HEAD branch :头指针指向的 master 分支

Remote branch :同时远程分支是被追踪的状态

Local branch configured for 'git pull':本地 master 分支被配置成 git pull 会拉取并且合并远程 master

Local branch configured for 'git push':本地 master 分支配置成 git push 推送远程 master

4、查看远程分支

origin master关联的是远程的master分支,用于追踪远程分支的状态

git branch -a 查看远程分支

加上参数v可以查看本地分支和远程分支的最后提交

此时,本地 master 和 远程 master 是同步的,都是最新的

修改 a.txt 文件

提交修改后再查看git status,发现本地master分支领先了1次提交。

从分支的详细信息中可以看到,远程分支的提交版本和master的提交版本不同,本地领先了。

把本次修改推送到远程,

远程和本地便保持了版本的同步

二、多人协作

1、项目克隆

把远程项目克隆到本地形成一个本地的仓库

git clone <远程仓库地址> <自定义名字>

发现克隆下来的仓库和远程仓库的名字一致

可以通过命令中的自定义名字的选项定义克隆到本地后,本地仓库的名字

2、多人协作

克隆远程仓库并命名为 testGit1

进入当前仓库,并设置仓库级的用户和邮箱

没有做其他变动,和远程仓库是一致的

3、协作处理

在 testGit 中通过 simple 添加文件 c.txt 并推送到远程

simple 的 push 已经到远程仓库

在testGit1仓库中 niko 查看远程状态发现已经过期

此时 niko 应该从远程仓库来更新拉取

fast-forward表示不需要手工处理冲突直接合并

4、冲突处理

当两个人修改同一个文件的同一行的时候就会发生冲突

使用 simple 修改 c.txt 内容后,提交并且推送到远程

此刻 niko 也修改 c.txt 内容,提交并且推送远程的时候发现出现冲突,推送失败

此刻 git 要求先拉取更新

提示拉取成功,但是自动合并失败。git建议修改冲突后提交,保留 niko 的

5、分支推送协作

在 simple 下创建 develop 分支

发现 git push 无法把 develop 推送到远程

git push --set-upstream origin develop 把本地的分支推送到远程分支

可以看到远程分支已经推送

同时本地也关联了远程develop分支

除此之外,还可以使用下面命令完成远程分支推送

git push -u origin <分支名>

6、分支拉取协作

由于 simple 已经推送,使用 niko 的账户来拉取,可以看到新建立了分支

发现有远程分支,但是没有本地的develop分支。

这时可以创建本地的 develop 分支,同时也可以修改本地分支的名字

git checkout -b <自定义本地分支名> <远程分支名>

还可以使用另一种方式本地分支的追踪,但是必须要先 git pull

git checkout --track <远程分支名>

7、远程分支的删除

在 simple 仓库删除 develop 分支,删除之后远程的 develop 分支关联还在

删除对应的远程分支

通过 niko 用户来查看本地对应的远程分支的时候,可以看到远程分支的变化

git remote show origin

git remote prune origin 查看 origin 远程对应的分支

三、tag标签远程管理

1、git tag <标签名> 创建标签

新建标签,标签有两种:轻量级标签(lightweight)与带有附注标签(annotated)

创建一个轻量级标签。

创建标签记在HEAD指针所指向的提交点创建tag(就是当前所在分支)

创建一个新文件 v2.txt ,并提交远程仓库

创建一个带有附注的标签

git tag -a v2 -m 'v2 version'

创建 v3 标签,用于删除标签

2、git push origin推送标签

创建一个新文件 v3.txt ,并提交远程仓库

创建v3标签

把三个标签推送到远程

远程仓库可以看到标签信息

3、标签拉取

使用 niko 用户拉取远程仓库中的标签

4、删除远程标签

在 simple 上删除远程标签 v3,此时,本地还存在

simple 和 niko 中删除本地标签

git push origin --delete tag <标签1> <标签2> 批量删除

5、标签检出

git checkout -b <branchName> <tagName>

创建 tx_master_v1.0 标签并且推送到远程

通过此标签来检出分支myfeature:

git checkout -b myfeature tx_master_v1.0

次分支这是本地分支,可以推送到远程

四、Git图形界面

1、gitk

在仓库路径下输入gitk

在界面上可以看到提交的流程。包括分支的合并。同时可以做分支管理和标签管理

2、Git GUI

在命令行中输入git gui

五、Idea 中集合 Git 使用

打开IDEA进入设置界面(可以直接点击工具栏上的,也可以通过快捷键 Ctrl + Alt + S ),搜索git,如下图是我设置好的:

可以看到 Git 是在 VersionControl 选项里

Path to Git executable 就是本地 Git 安装路径中 bin 目录下的 git.exe,选择好路径后点击 Test 按钮,如果正确安装且路径正确,那么会弹出如下对话框,表示配置成功:

创建 git 本地库,克隆 GitHub 上的仓库

通过idea引入代码

可以发现当前代码没有在 idea 的 git 上关联,选中添加即可。

此时 idea 和 git 本地库就已经关联上了。

此刻就可以开发了。

六、GitLab的使用

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

1、安装GitLab

Gitlab的rpm包集成了它需要的软件,简化了安装步骤,所以直接安装rpm包即可,rpm包的获取从官方网站或者国内镜像源(如:清华https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/)获取,gitlab又分为社区版和企业版(收费),这里部署的是社区版本10.8.4

可以使用命令:

复制代码
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm

进行在线安装

这里使用安装包本地安装

在根目录 / 下创建安装目录,mkdir -p /usr/local/src/gitlab

进入 gitblab 目录 输入命令:

rpm -ivh gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm 进行解压

解压后输入命令:

复制代码
vi /etc/gitlab/gitlab.rb

修改配置,使能够从外界访问

找到 external_url ,修改为云服务器的ip地址

输入命令:

复制代码
gitlab-ctl reconfigure

重新加载配置

提示已经重新加载了配置

输入命令 :

复制代码
gitlab-ctl status

查看gitlab运行状态

已经成功安装

2、登录并产生秘钥

访问服务器 ip 地址

重置密码

登录:默认用户名是root,密码使用刚刚重置过的。

创建空白项目

选择项目路径,输入项目名称,项目描述,选择项目等级(私人的,内部的,公开的)

上面有一行黄色的提示,要求我们配置ssh

首先在服务器上生成公钥:

ssh-keygen

使用默认值,需要三次回车,生成类似的内容

输入命令:cat .ssh/id_rsa.pub,查看公钥,将公钥复制到 gitlab 中

我们在远程机器生成私钥

生成新的SSH密钥:ssh-keygen -t rsa -C "your_email@address"

此命令将提示您用于存储密钥对和密码的位置和文件名。当提示输入位置和文件名时,只需按Enter键即可使用默认值。如果使用其他名称,则不会自动使用该密钥。

在C盘下 .ssh 文件夹中会生成 id_rsa 和 id_rsa.pub 两个文件,其中 id_rsa.pub 里面是以ssh-rsa开头并以您的用户名和主机结尾的完整密钥。将密钥复制粘贴到 profile settings中 SSH keys 选项卡下,add an ssh key ,保存。

步骤:

在window系统打开命令行输入

ssh-keygen -t rsa -C "renliangjava@163.com"

打开id_rsa.pub,把所有内容复制

到Gitlab中将密钥复制粘贴到profile settings中 SSH keys 选项卡下,add anssh key ,保存。跟添加公钥的步骤完全一致

仓库的使用和Gitee与Github相同。

相关推荐
我是不会赢的24 分钟前
如何安装 Git (windows/mac/linux)
git·版本管理·代码管理
五岁小孩吖3 小时前
关于 git reset --hard 引发的代码故障(附故障原因及解决方案)
git
却尘3 小时前
💀 Git 考古灭迹术:让代码"从未存在过"的禁忌技法
git·github·敏捷开发
五岁小孩吖3 小时前
Git 如何正确回滚代码?常见回滚操作对比,适用不同的场景
git
Hilaku5 小时前
为什么我坚持用git命令行,而不是GUI工具?
前端·javascript·git
明镜6558 小时前
Git基本使用(Windows版)
git
leonkay8 小时前
Git Flow 分支管理完全指南
git
青草地溪水旁8 小时前
git merge和git rebase的区别
git·rebase·merge
尖椒土豆sss9 小时前
SourceTree 客户端一些使用场景
前端·git
楼田莉子10 小时前
(3万字详解)Linux系统学习:深入了解Linux系统开发工具
linux·服务器·笔记·git·学习·vim