Git使用详解(结合GitLab和GitHub)

本文详细介绍了如何在GitLab上创建项目,将本地代码推送到远程仓库,管理分支,克隆代码,配置SSH密钥,以及删除项目的过程。还涵盖了常用的Git命令及其应用场景。
摘要由CSDN通过智能技术生成

这里写图片描述

2.创建远程仓库。

在GitLab上点击"New Project",之后键入项目名,其它选项默认即可,点击"Create project"按钮即可完成创建。

这里写图片描述

3.将本地仓库连接推送到远程仓库。

在项目目录下打开Git Bash,键入"git remote add origin <远程仓库地址/SSH>"命令。

这里写图片描述

4.将代码提交到本地仓库中。

使用"git add ."命令添加所有文件,使用"git commit -m <提交日志信息>"命令将代码提交到本地仓库。

这里写图片描述

5.将代码提交到远程仓库。

键入"git push -u origin master",这是第一次提交时用的命令,之后再提交的话使用简化命令"git push"即可。

这里写图片描述

此时我们再去远程仓库上刷新一下,就能看到我们刚刚提交上去的文件了。

这里写图片描述

四、从远程仓库克隆代码到本地。

先找到项目Git地址或SSH,如下图,点击链接后面的复制按钮:

这里写图片描述

我们新创建一个项目目录,打开Git Bash,键入"git clone 远程仓库地址/SSH"命令,回车,就可以将项目克隆下来了。

这里写图片描述

五、分支管理

1.创建分支。

我们刚刚已经将代码提交到GitLab远程仓库了,默认的话会提交到项目的主干目录,如下图。这时候我们点击项目名后面的加号,会出现下面的弹窗,然后点击New branch按钮。

这里写图片描述

之后在下面的界面中输入分支的名字,另外你可以选择Create from的来源,这会决定从哪个分支进行创建,我这里用了默认的master主干目录,点击Create branch按钮即可创建分支。

这里写图片描述

这时候再来看项目的分支目录,可以看到,除了默认的master主干目录,现在多了一个version_1.1分支目录,你也可以点进去查看一下详细信息,该目录的创建源是主干目录,所以你会发现目录中的内容和master主干目录完全一致。

这里写图片描述

2.切换分支。

创建完新的分支后,我们首先需要执行"git pull"命令将变更内容拉下来。现在我们已经有master个version_1.1两个分支了,目前我们本地仓库是master主分支的,现在我们要切换到version_1.1分支,使用的是"git checkout 要切换的分支名"命令,如下图,可以看到,我们成功从master分支切换到了version_1.1分支,当然,如果你想再切回主干分支,则使用"git checkout master"命令,你可以去尝试切换一下。

这里写图片描述

3.合并分支。

使用分支这个功能另外一个很重要的操作就是分支的合并,你可以任意将代码从某一分支合并到另一分支,那么就让我们一起来学习一下这部分内容:

刚刚我们已经切换到version_1.1分支了,不妨就直接在这个分支中改动一些内容,然后将代码合并到master分支。

我在当前分支目录下的README.md文件中改动了些内容,并增加了code3.txt文件,我们依次执行"git add ."、“git commit -m <提交日志>”、“git push"命令三部曲来将代码提交到远程仓库(相信这部分大家已经很熟练了)。

此时我们再执行"git checkout master"切换到主干目录,可以看到文件发生了一些变化:我刚刚的改动都不见了!这就代表你已经成功切换到master目录。

接下来就到关键的合并步骤了,使用"git merge 分支名"命令合并某分支到当前分支:

这里写图片描述

可以看到,本地代码发生了变化,在version_1.1分支下的改动都合并到了当前的master主干目录下。有一点你必须清楚的是,改动只是发生在了本地,而本地仓库和远程仓库都没有发生变化,此时你仍需要执行命令三部曲"git add”、“git commit”、"git push"来将合并后的代码提交到远程仓库。此时你可以发挥你举一反三的能力了,试着在主干目录改动代码并将代码合并到分支目录吧。

六、GitLab配置SSH key。

1.首先我们这里说明一下,我们为什么要使用SSH协议呢?因为SSH更加安全,然后更加方便,比如我们的GitLab由http协议换成了https协议,那么如果你是使用http协议管理代码,那么需要修改所有的项目中的git地址变成https,这简直是太繁琐了!但是如果我们一开始就是用SSH协议,这不需要任何的修改。
2.现在我们这是开始进行配置,打开Git Bash窗口,使用命令(ssh-keygen -t rsa -C ‘xxx@xxx.com’)生成SSH公钥和私钥对,-C参数是你的邮箱,然后一路回车,使用默认值即可。然后你就可以在用户主目录里找到.ssh目录(比如Windows就是C:\Users\Administrator),里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH KEY的秘钥对,id_rsa是私钥,不能泄漏出去,id_rsa.pub是公钥,可以放心地告诉任何人。
3.在GitLab中进行SSH KEY的配置。可参考下图,将上一步中生成的id_rsa.pub文件中的内容粘贴到Key的输入框中,然后再自定义一下Title,点击"Add key"即可。

这里写图片描述

4.相信现在你已经配置好并可以正常使用了,这里在额外说明一下关于本地配置多个SSH KEY的问题。想一下这样的场景,大多数时候,我们的机器上会有很多的GIT HOST,比如GitLab、Github、OSChina等,那我们就可能需要在本地配置多个SSH KEY,使得不同的HOST能使用不同的SSH KEY。

当然,其中一种解决方案就是所有的GIT HOST都使用同一个邮箱,由于邮箱是识别的唯一手段,那么自然的,这两者采用同一个邮箱,生成的public key也会是同一个,上传到 Github 或者 Gitlab 上面,在 Git 的配置中 ,设置好 Global 的配置 :git config --global user.name ‘mythmayor’ && git config --global user.email ‘mythmayor@163.com’ 进行日常的开发是没有问题的。

但在实际开发中采用同一个邮箱的可能性并不是太大,这就引出了方案二,做法如下(以GitLab和Github为例):

(1)为GitLab生成一对秘钥SSH KEY

ssh-keygen -t rsa -C ‘yourEmail1@xxx.com’ -f ~/.ssh/gitlab-rsa

(2)为Github生成一对秘钥SSH KEY

ssh-keygen -t rsa -C ‘yourEmail2@xxx.com’ -f ~/…sh/github-rsa

(3)在~/.ssh目录下新建名称为config的文件(无后缀名)。用于配置多个不同的host使用不同的SSH KEY,内容如下:

gitlab

Host gitlab.com

HostName gitlab.com

PreferredAuthentications publickey

IdentityFile ~/.ssh/gitlab_id-rsa

github

Host github.com

HostName github.com

PreferredAuthentications publickey

IdentityFile ~/.ssh/github_id-rsa

配置文件参数

Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件

HostName : 要登录主机的主机名

User : 登录名

IdentityFile : 指明上面User对应的identityFile路径

(4)按照上面的步骤分别往gitlab和github上添加生成的公钥gitlab_id-rsa.pub和github_id-rsa.pub。

(5)OK,大功告成,再次执行git命令验证是不是已经不需要再次验证权限了。

(6)再次查看~/…ssh目录下的文件,会有gitlab_id-rsa、gitlab_id-rsa.pub和github_id-rsa、github_id-rsa.pub四个文件。

七、GitLab删除项目。

为什么要单独提一下这个操作呢?因为删除项目的入口比较深,我第一次使用的时候也是找了一会才找到了删除的操作。

首先我们来到项目Settings的Genaral下,然后可以看到Advanced选项,点击右面的Expand按钮。

这里写图片描述

向下翻到最后,你会看到Remove project这一项

这里写图片描述

点击Remove project按钮,会出现下面的弹窗,这时候在输入框中重新键入项目名(图中标红框的名字),填写正确的话Confirm按钮会变成可点击的状态,此时点击按钮即可删除项目。

这里写图片描述

八、个人Git常用命令。

(ssh-keygen -t rsa -C ‘xxx@xxx.com’) 生成SSH公钥和私钥对

(git remote add origin <远程仓库地址/SSH>) 将本地仓库连接推送到远程仓库

(git push -u origin master) 第一次提交代码到远程仓库

(git clone <远程仓库地址/SSH>) 从远程仓库克隆代码

(git diff) 查看本地代码差异

(git status) 查看本地代码状态

(git log) 查看提交历史日志,后面加上–pretty=oneline会输出简化日志

(git reflog) 查看每一次命令记录日志

(git add .) 添加代码到本地仓库

(git commit - m <提交信息>) 提交代码到本地仓库

(git push) 提交代码到远程仓库

(git pull) 从远程仓库拉取代码

(git branch) 查看分支

(git branch <分支名>) 创建分支

(git checkout -b <本地分支目录> <origin/远程分支目录>) 创建并切换到分支目录

(git checkout <本地分支目录>) 切换到分支目录

(git checkout master) 切换到主干目录

(git merge <分支名>) 合并某分支到当前分支

(git cherry-pick <commit_id>) 合并某分支的某次提交到当前分支

(git reset --hard <commit_id>) 版本穿梭,HEAD指向当前版本

(git branch -d <分支名>) 删除分支

(git stash) 暂存本地修改

(git stash pop) 拉取暂存本地修改

(git stash clear) 清空暂存本地修改

(ls) 列出当前目录下的所有文件

九、常见问题。

1.在合并时可能会报下面的错误:Please enter a commit message to explain why this merge is necessary.

在这里插入图片描述

解决方案:

1.按键盘上的“i”键可进入插入模式

2.这时可以修改最上方的黄色部分,改成你想写的合并原因

3.按键盘上的“Esc”键退出插入模式

4.最后在最下面输入":wq"后按回车键即可

最后看一下学习需要的所有知识点的思维导图。在刚刚那份学习笔记里包含了下面知识点所有内容!文章里已经展示了部分!如果你正愁这块不知道如何学习或者想提升学习这块知识的学习效率,那么这份学习笔记绝对是你的秘密武器!


《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
方的黄色部分,改成你想写的合并原因

3.按键盘上的“Esc”键退出插入模式

4.最后在最下面输入":wq"后按回车键即可

最后看一下学习需要的所有知识点的思维导图。在刚刚那份学习笔记里包含了下面知识点所有内容!文章里已经展示了部分!如果你正愁这块不知道如何学习或者想提升学习这块知识的学习效率,那么这份学习笔记绝对是你的秘密武器!

[外链图片转存中…(img-CR2shOPr-1714749257555)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 26
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值