Git于Gitee的基本使用

注:该篇文章部分转载于哪个博主我记不太清了,自己做了一些修改,如有侵权请联系我删除

1.1 Git是什么?

    Git — The stupid content tracker, 傻瓜内容跟踪器。Linus Torvalds 是这样给我们介绍 Git 的。
Git 是基于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持(wingeddevil注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样。并且在push和pull的时候和服务器端还是有交互的。),使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。


    实际上内核开发团队决定开始开发和使用 Git 来作为内核开发的版本控制系统的时候,世界开源社群的反对声音不少,最大的理由是 Git 太艰涩难懂,从 Git 的内部工作机制来说,的确是这样。但是随着开发的深入,Git 的正常使用都由一些友好的脚本命令来执行,使 Git 变得非常好用,即使是用来管理我们自己的开发项目,Git 都是一个友好,有力的工具。现在,越来越多的著名项目采用 Git 来管理项目开发.

1.2 Gitee是什么?

    Gitee(码云)是开源中国于2013年推出的基于Git的代码托管平台、企业级研发效能平台,提供中国本土化的代码托管服务。
    提起gitee,大家难免会想到github,githee和github基本是一样的,都是开源网站,可以帮助所有用户管理自己或者团队的代码,只是gitee是国内网站,github是全球最大的开源网站,虽然资源多,但全是英文而且有时候不稳定,所以我们选择gitee就够了,而且gitee有很多方便的功能。

1.2 安装Git

Git官网
直接百度git去官网下载就行
图片.png


点击download for windows。


下载好之后双击文件打开安装程序,全是英文,在第二个界面可以指定安装目录,默认是c盘,其他的一直next就行。


安装好之后git会自动给我们添加两个命令行功能,鼠标右键就可以看到,叫Git GUI Here和Git Bash Here,这里我们一般用第二个。
图片.png

1.3 创建Gitee账号

Gitee官网
页面右上角注册账户
图片.png

1.4 创建公钥

登录之后点头像选择账号设置,选择ssh公钥,里面教你怎样生成公钥,公钥主要方便后面上传文件,不然每次都要用户验证很麻烦
图片.png


Windows 用户建议使用 Windows PowerShell 或者 Git Bash,在 命令提示符 下无 cat 和 ls 命令。

1. 通过命令 ssh-keygen 生成 SSH Key:

ssh-keygen -t ed25519 -C "Gitee SSH Key"
-t key 类型
-C 注释

输出,如:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/git/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/git/.ssh/id_ed25519
Your public key has been saved in /home/git/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:ohDd0OK5WG2dx4gST/j35HjvlJlGHvihyY+Msl6IC8I Gitee SSH Key
The key's randomart image is:
+--[ED25519 256]--+
|    .o           |
|   .+oo          |
|  ...O.o +       |
|   .= * = +.     |
|  .o +..S*. +    |
|. ...o o..+* *   |
|.E. o . ..+.O    |
| . . ... o =.    |
|    ..oo. o.o    |
+----[SHA256]-----+

中间通过三次回车键确定

2. 查看生成的 SSH 公钥和私钥:

ls ~/.ssh/

输出:

id_ed25519  id_ed25519.pub
私钥文件 id_ed25519
公钥文件 id_ed25519.pub

3. 读取公钥文件 ~/.ssh/id_ed25519.pub:

cat ~/.ssh/id_ed25519.pub

输出,如:

ssh-ed25519 AAAA***5B Gitee SSH Key

复制终端输出的公钥。

4.设置账户 SSH 公钥

在ssh公钥页面中粘贴公钥即可

1.5 创建仓库

在gitee页面右上角点击加号新建仓库
图片.png
设置一下名称创建就行,你在里面添加内容后才可将仓库设置为开源,所有先私有。

创建好之后配置一下,只用配置一次

打开命令行输入git config --global user.name “ityz”,引号里面是用户名,自己设,设好回车

然后输入git config --global user.email " ",引号里面给自己邮箱就行。

1.6 远程仓库的下载与上传

在仓库创建好之后会给你两个仓库下载链接,选择ssh的链复制然后打开命令行
输入

 git clone(下载命令)空格之后给链接然后回车

下载好了之后就可以在桌面看到一个文件夹,就是你的远程仓库,如果想在别的文件夹存储,那么就在其他文件夹中打开命令行输入命令

你可以在文件夹里面加你想加的东西

然后打开命令行进行上传操作

输入cd然后空格加你的远程仓库名加/,跳转到本地远程仓库目录目录
然后依次输入

git add 把内容放进缓存区,回车
git commit -m "描述信息",回车
git push origin master 上传,回车

内容就上传到你的目录了
顺便补充怎么获取仓库链接,打开自己的仓库
图片.png
点克隆/下载就行。


如果需要直接创建一个本地仓库而不是去clone从网上下载就创建一个本地仓库文件夹,然后在文件夹中右键打开git命令行输入
 git init

命令运行成功后就会在本地生成一个.git的文件夹(这个文件夹可能会被电脑设置隐藏,你需要点击文件夹查看设置让其显示隐藏的文件夹),这个.git文件夹包含了你初始化的 Git 仓库中所有的必须文件,所有这个文件夹你想应该与你需要传的东西并列,就像下面这样
图片.png

1.7 IDEA中配置Git

1.7.1 IDEA中配置Git

选择File→Settings打开设置窗口,找到Version Control下的Git选项,然后配置Git路径。如果Git安装在默认路径下,IDEA可以自动找到。选择路径后点击右侧Test,出现版本号提示即可【由于IDEA版本问题,提示的方式可能不一致】。
4401d3a4f361b98769562e0d62551499.png

1.7.2 IDEA中使用Git

1.7.2.1 拉取项目

选择File→New→Project from Version Control
2225f5545add904b9307d668e354b615.png

实际工作中拉取的项目可能存在于公司搭建的GitLab中,我们这里从码云拉取,道理都是一样的。
03da2e190f83603aea919a468d13c40f.png

复制此项目的git地址,填入URL,Directory是项目在你本地的地址,然后点击Clone即可。
71cec1ae45462d21238c9bdac0010780.png
打开它
0719adcf5892725807486af1cc1017c9.png

1.7.2.2 选择正确的分支

实际项目中会存在很多分支,那我们需要拉取正确的分支来进行开发,在IDEA的右下角可以选择,默认是master分支。
c2ea8837ee8f35c35a73826006342ff1.png

想要哪个分支直接Checkout即可。
7ba17a5481b23c2db4ec39922159a265.png

1.7.2.3 代码提交到暂存区

拉取代码后开始工作,比如这里我们修改了一些类中的代码,又新增了一些类。但是这个红色的要引起注意。
d92f265a4b5bd683adcbb56854c45f64.png
右键项目,选择Git→ Add 将文件信息加到暂存区
83dea722664193f0731a72990fa7edfb.png
此时可以看到刚刚的Teacher类变为绿色了。
327683ad230952169a6f0294ab0fd924.png
然后右键项目,选择Git→ Commit
cd8fb149fe5988feb9d8191ffaeec3ca.png
选择我们想要提交的文件,填写提交信息,然后Commit,主要用于将暂存区里的改动内容提交到本地仓库中。
1a87911fe44b9121f9e4dff3f580701a.png

1.7.2.4 更新代码

一般在将本地代码提交到远程仓库时,最好先更新下远程仓库的代码到本地,从而避免不必要的冲突。【养成良好的习惯,每天到公司就先更新代码】


通过IDEA的右上角更新图标,或者通过快捷键 Ctrl + T 进行拉取
3a3acc1b39c2912683111ed1c209cdfb.png
更新时有两种方式:

1.Merge incoming changes into the current brance
2.Rebase the current branch on top of incoming changes

两种方式我们通过图的形式来分析一下:

你和同事在同一个
30d3fb6287f95ad454c06bf643230e50.jpeg
Merge
153ede45c437d6e9d8b60a3c517111e5.jpeg
看一下实际项目中的情况,最后会形成一个新的 commit 提交
1be1aa783d5a95c9eb7fd039129562a9.png
Rebase
f480ba328b32f7a418899eadf85be64c.jpeg
Merge具有更高的可追溯性,而Rebase则更整洁且易于审核。

1.7.2.5 推送代码

右键选择Git→ Repository→ Push 或者快捷键 Ctrl+Shift+K
7bdf6e3dba33e9ceca2471695490660b.png

调出界面后,排查没问题Push即可。
19110ab70839a932511e4c3d3ea23210.png

1.7.2.6 撤销提交

上一步说到排查没问题再Push,那如果有问题在Version Control的Log中可以看到刚刚Commit的记录
a50b0802dc52d086acc9a84f6605edbb.png
右键这条日志,可以选择撤销或者编辑提交信息
2ef0b84eb1ef27b7753b7c73c35086e8.png

选default就可以
74d1c6650121da2c2c5d7cdcd2893c2d.png
然后修改重新提交即可。【需要注意的是撤销当前分支最后一次提交】

1.7.2.7 储藏改变

场景:

1、代码没有commit,但是需要pull代码

2、代码没有commit,但是需要切分支

右键Git → Stash Changes
fce18da8d125fe8ba57daf15768bfd93.png

这样就可以把本地的改动藏起来
7a7abb85c520e3e3cec32f2735258cb8.png

pull完代码后再通过Unstash Changes把藏起来的代码释放出来
ca31d16207c8072efa33910dcda080df.png

1.7.2.8 撤销推送

【方法一】比如我这里新增学科类,Commit
8a7c3d62529d0631df52686f381a58f6.png
然后推送到远程仓库了
e0537c13a4efb1743c8fd1d308a6ffae.png

这个时候我发现推送错了,可以在Version Control的Log中选中我想撤销的记录,选中Undo Commit
d97f50e78604f833b09ddc3281f86a95.png
但是这个时候只是本地,不会影响到远程仓库,我们还需要做一次推送
52e8fe0f8dba64b03c2c09b1ae024f17.png
然而你发现啥都没有,此时我们需要强推
01d95369c85b455b76c6ec57278d4ec6.png

查看远程仓库推送记录,刚刚的记录已经不在了。
45cf5fbacb74c8dfe569f2db029e058d.png

而我们的代码在上述撤销提交中也提到了,改变的代码还是在的,不用担心
95eeba778071f418a1820e8b0e60065f.png
【方法二】

我们先把刚刚的改动代码再次Commit、Push。查看日志,我们想把第一条记录撤销,那么也就意味着版本回到第二条记录的位置
c1817db9fab909ba866a06ca4855e531.png
右键第二条记录,选择 Reset Current Branch…
e7213f9669b1f3ae7f680937c71a54e8.png
此时会出现四个选项
5d79df5c79cb9de64606c76d520a472a.png

  • Soft:暂存区【Add后】和你本地改动代码都在,新增的文件你会发现它是绿色
  • Mixed:本地改动代码在,暂存区没有了,你刚刚新增的文件是红色了
  • Hard:在选择的回退点之后的所有更改都会被丢弃(包括未提交和已提交的文件)。这种方式会删除回退点之后的所有文件,影响巨大,除非真的有此需要,否则不推荐使用。
  • Keep:在选择的回退点之后的所有已提交的更改会被丢弃,但未提交的文件会被完整地保存下来。如果真的有此需要,可以选择。

选择 Soft或Mixed后强推一次就可以了。

1.7.2.9 合并分支

首先Checkout到目标分支,然后选择想合并的分支右侧三角符,选择Merge或者Rebase
83d547505fecc9420b90f9ebd9e35a71.png

1.7.2.10 代码冲突

代码合并过程中避免不了有冲突的情况,实际项目中也存在有代码合丢了的情况,个人愚见:

一两行简单的冲突,喊同事一起看一看取舍一下即可。

复杂一点的冲突,建议把自己的代码复制一份出来,然后选择接受别人的,防止把别人的代码冲丢了,再使用代码比对工具将复制出来的代码与IDEA中的对比解决。
f9c197ac6b59ed0b4701a79b21fa5963.png

1.8 VsCode中使用Git

在一个目录下clone项目:

git clone XXXXXX.git

c390189d00e85505d71ca3662e3509f9.png
使用VScode 打开项目

1.8.1 测试提交

  1. 打开下面视图,添加一行文字:
    435add5447861d6af65b62502d2f784c.png
  2. 点击 + ;相当于git add .
    39977569dc579b32ba57d7051a3d3739.png
  3. 点击对号;等于git commit -m “备注信息”;右边的箭头输入需要备注的信息。然后按 Enter 确定:
    10f2dfbfa252436d0f84199fe3e9d370.png
    回车之后,然后我们可以看到。所有的修改的文件,均已经提交到缓存区。1变成了 0:
    db7dd6da833fa53108506f4aa5e85de2.png
  4. 提交到远程仓库;git push origin master:
    0322fe373e050d4cb4d6861f608bd7b3.png
    到git仓库里面;查看。已经成功提交:
    cffb6762a4469c1e392aff8a55e0abb1.png

1.2.8 使用vscode解决冲突

在使用git的时候,经常会遇到冲突;这里简单的说明,如何使用vscode来解决冲突。大家在提交代码的时候,一定要先拉取代码;不然就会造成冲突;
1.拉取代码 git pull origin master:
051fb282c1c2a3b50082c39da14544d8.png
这里说明一下造成冲突之后,如何处理。下面是同一个项目,放到不同的文件下面。在未拉取代码的情况下,对文件进行修改的操作。造成冲突的解决方式:
50cd941d8376eb2fffa70877b172fc43.png
2.增加一句话我是修改:
62b0dade947007006720595efc6c851e.png
3.提交代码:
dc30c7d6191d208b16302218c63ba752.png
ebb952b7fc46a51bf2996a1685494265.png
回车,enter;提交到远程仓库:
e1042d9f27cc403d1d2b001d49d5aa41.png
4.提交到远程仓库的时候,这时候会报错:
f493a7100418f2947e936342ea8ca2ca.png
5.拉取远程代码:
7f2024b4fef8e7e5cd960d8e9df5393b.png

结果如下,显示出冲突的文件:
014f79a674a2aa12e2840fb39038798c.png
这里有几个操作来进行快速的修改:
72f52674bd3963417740f837ca818989.png
我这里选择的 保留双方的更改;然后结果如下:
d11230089e56d0d782bc3691eb170ee3.png
6.重新提交代码:
bd9b0e87fe2b3bf2167a8872f93ad266.png
放到缓存区:
e3cdc5613384b260a26ef7154ba60e42.png
推送到远程仓库:
7466227ba08f965a30fe0e62fd1ce41e.png
7.查看结果:
3792d4749ed67208647acb1669a5643c.png
现在:
6d755aeb5bb798a27a99a09a52649563.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值