三十分钟轻松玩转Git——学会Git就靠这一篇(ง •_•)ง


Git入门教程

✨✨学会Git就靠这一篇!🎉🎉

👀这是我第一次写如此长篇的文章,优秀的文章离不开读者的支持~
👩🏻如果有存在问题的地方欢迎大家在评论区留言,我会第一时间改正~

Git简介

Git

🙋‍♀️Git是什么?

Git是一个分布式版本控制工具。

版本控制:在开发时功能需求是随时变化的,比如我们写了一个购物车退货的功能,甲方突然表示这个功能不需要了,这时有了版本控制工具就可以直接回到之前的某个版本,不需要一行一行来修改代码。

分布式:同一个项目由很多个人编写,但是张三在北京,李四在上海,王五在杭州,有了Git就可以帮助我们合并不同人写的代码,我们在任何地方都可以控制代码的版本。

🙋‍♀️GitHub与码云?

GitHub码云都是代码托管平台。

使用Git可以将代码放在本地仓库,也可以将代码放在远程仓库,GitHub就是我们存放代码的远程仓库。

GitHub因为只支持git作为唯一的版本库格式进行托管,故名GitHub。简单来说,GitHub是一个代码托管云服务网站,帮助开发者存储和管理其项目源代码,且能够追踪、记录并控制用户对其代码的修改。甚至你可以简单粗暴的把它当作一个网盘,用来存储任何东西。

码云可以看作是中文版的GitHub,由开源中国出品。

🙋‍♀️TortoiseGit是什么?

TortoiseGit的图标是一个小乌龟,是Git版本控制客户端,几乎是人尽皆知的Git图形化管理工具。如果仅仅安装了Git,我们只能用命令行来操作Git,在安装了客户端以后就可以借助图形界面使用鼠标点点点来操作Git了。

🙋‍♀️图形化客户端?

除了ToroiseGit,还有很多图形化管理工具,作为入门推荐的是一个叫做GitKraken的图形化客户端,界面漂亮,功能也很全面,对个人完全免费~

🚀GitKraken官网:https://www.gitkraken.com/

GitKraken


安装Git

📌支持平台:

  • macOS
  • Windows
  • Linux/Unix

📌Git下载:

🚀Git官网:(https://git-scm.com/
🚀腾讯软件中心下载:(https://pc.qq.com/search.html#!keyword=git)

📌软件安装:

Git的安装非常简单,全部点击“下一步”就可以了( $ _ $ )

建议安装到默认目录,很多第三方软件调用Git时会去默认安装目录寻找,这样就免去了手动配置的麻烦。

安装完成后鼠标右键会看到Git GUI HereGit Bash Here

Git安装


初始化Git

打开资源管理器,进入一个项目文件夹,鼠标右键,点击Git Bash Here,打开Bash命令行工具。

Bash

📍1.配置用户信息

安装完Git之后,第一件要做的事就是设置用户名名和邮箱。每一个Git提交都会使用这些信息来区分是谁提交的代码,它们会写入到每一次提交中,不可更改:

$ git config --global user.name "student_Max"
$ git config --global user.email "706694938@qq.com"

如果使用了--global可选项,所有的Git提交都会使用这些信息。如果要针对特定的项目使用不同的用户名和邮件地址,可以在特定项目的文件夹下运行没有--global的命令配置。

使用第三方GUI工具会在第一次运行时帮助你配置这些信息。

📍2.检查配置信息

列出所有Git可以找到的配置:

$ git config --list

Git配置

📍3.获取帮助

有三种方法查看Git命令的综合手册:

$ git help <verb>
$ git <verb> --help

获取后一类指令的使用帮助(比如config命令的使用手册):

$ git help config

输入后会弹出一个网页~

Git Help

📍4.初始化本地仓库

将当前的文件夹作为我们的本地仓库:

$ git init

初始化以后会在文件夹中会多出一个隐藏文件夹.git

Init


建立第一个本地仓库🏡

先创建Git-Study文件夹作为我们的本地代码仓库,在此文件夹中按鼠标右键,打开Git Bash

  • 初始化仓库

    $ git init
    
  • 添加一个文件Hello.c,在bash中的命令与Linxu系统的命令是一样的,我们先直接通过命令行来创建一个.c文件。

    $ touch Hello.c
    $ echo helloworld > Hello.c
    
  • 提交至缓存区

    $ git add Hello.c
    
  • 提交至本地仓库,引号中填写版本的名字,这里叫做first

    $ git commit -m 'first'
    

    Hello.c


Git基本原理

Git有三种状态,你的文件可能会处于其中之一:已提交(committed)已修改(modified)已暂存(staged)

  • Modified:修改了文件,但是还没保存到Git数据库中。
  • Staged:对已经修改的文件的当前版本做了标记,使之包含在下次提交的快照中。
  • Commited:数据已经安全地保存在了Git数据库。

这样我们的Git项目会拥有三个阶段工作区暂存区Git目录(仓库)

Git原理

  • 工作区是某个版本提取出来的内容。从Git仓库的压缩数据库中提取出来的文件,放在磁盘上供使用或修改。
  • 暂存区是一个文件,保存下次将要提交的文件列表信息。
  • Git仓库目录是Git用来保存项目的元数据和对象数据库的地方。

📥Git的工作流程

  1. 在工作区修改文件。
  2. 将下次要提交的更改选择性的保存起来,只会将更改的部分添加到暂存区。
  3. 提交更新,找到暂存区的文件,将快照永久性存储到Git目录。

🙋‍♂️工作区、暂存区、版本库、仓库有什么区别?

  • 在某个文件夹下使用$ git init命令后,这个文件夹一般就叫做本地仓库,在仓库中管理我们项目的各个版本。工作区,暂存区,版本库都在这个文件夹中,或者说都在仓库中,由它们共同组成了我们的本地仓库。

  • 工作区就是在电脑里能看到的目录。
    work

  • 缓存区在.git隐藏目录中的index文件,所以缓存区有时也叫做索引。

index

  • 仓库里的.git隐藏文件夹就是版本库,存放着已经commit的不同版本。

    repo

图片来源:CSDN博主vonphp:GIT(三)— 工作区、暂存区和版本库(仓库)-(重点)


Git基础命令

🏅1.查看当前状态

查看当前状态来了解那些文件是新添加的,哪些文件已经加入了暂存区。

$ git status

先在Hello.c文件的末尾添加新的内容,此时在来查看当前的状态。在Bash中可以看到Hello.c显示为红色,告诉我们该文件处于已修改的状态,还没有放到暂存区

status

添加文件至暂存区,再查看状态。

$ git add Hello.c

status

这时会提示我们修改的文件可以提交。执行提交命令,再查看状态。

$ git commit -m 'second'

status

补充:如何将工作区的所有文件一次性添加到缓存区?

.表示所有文件。

$ git add .
🏅2.查看历史操作记录

查看历史操作记录:

$ git log

结果中:
head代表当前所处的分支,master代表当前是master分支。

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/Git-Study (master)
$ git log
commit 0172966fe45459e5d1a7e4ced996990758a22cc1 (HEAD -> master)
Author: student_Max <706694938@qq.com>
Date:   Sat Jan 22 18:22:57 2022 +0800

    second

commit 4ca483bcafeac527a9849cc08d04c41e7b635668
Author: student_Max <706694938@qq.com>
Date:   Sat Jan 22 16:30:04 2022 +0800

    first

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/Git-Study (master)
$

🏅3.版本回退

head指针指向当前正在编辑的版本,head后加一个~表示回退一个版本。

$ git reset head~

回退多个版本:

$ git reset head~~
$ git reset head~10

可选参数:

  • --hard:回退版本库,暂存区,工作区,不只移动head指针,还会将暂存区的文件还原到工作目录。(修改过的代码会删除,要谨慎使用)
  • --mixed:默认参数,回退版本库,暂存区。
  • --soft:回退版本库。(只移动head指针,相当于撤销上一次的提交)

不仅可以往回滚,还可以往前滚。

查看所有的历史提交(包括回退的):

$ git reflog

Git记录了每一次操作的版本ID号。

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/Git-Study (master)
$ git reflog
0172966 (HEAD -> master) HEAD@{0}: commit: second
4ca483b HEAD@{1}: commit (initial): first

使用ID号往前滚:

$ git reset --hard 0172966
🏅4.版本对比

对比版本之间有哪些不同。

比较工作区和暂存区:

$ git diff

先在文件中添加新内容,进行比较:

git diff

比较最新提交:

$ git diff head

比较两个历史快照:

$ git diff 0172966 4ca483b

比较某一仓库版本和暂存区:

$ git diff --cache 0172966
🏅5.删除文件与误删文件恢复

如果不小心删除了Hello.c,还可以从暂存区中拉回:
(手动删除只会影响工作区)

$ git checkout -- Hello.c

删除文件:

$ git rm Hello.c

rm命令只是删除工作区和暂存区的文件(取消跟踪),再次commit,版本库中也会删除。

$ git commit -m 'del'
🏅6.重命名文件

直接在文件夹里重命名会出错。
比如把Hello.c改为abc.c

重命名

Git会认为我们删除了Hello.c并且新创建了abc.c文件。
正确的姿势应该是git mv 旧文件名 新文件名

$ git mv Hello.c abc.c
🏅7.忽略文件

在项目中有一些文件是不需要进行版本管理的,比如IDEA项目会有很多配置文件,我们只需要管理源代码,忽略其中的配置文件。

比如工作目录中有temp.txt文件,我们想将其忽略,此时可以:

  1. 创建名为.gitignore的文件(之前版本的Windows不能手动创建,只能通过命令解决)

    $ touch .gitignore
    
  2. 在文件中添加要忽略的文件

     $ echo *.tex >> .gitignore
    

    星号*是通配符,表示忽略所有以.txt结尾的文件。

    gitignore

  3. 如果要忽略这个文件本身,可以:

    $ echo .gitignore >> .gitignore
    

    一般不忽略它本身,因为从远程仓库下载的代码还要用到它。


Git进阶—分支🍋

在Git的简介中我们知道Git是一个分布式版本控制工具(VCS-Version Control System),前面的基础命令主要介绍了版本管理相关的命令,接下来让我们来进一步了解Git的分布式特点中常用到的概念—分支

分支

😏分支是什么?

假如我们的项目上线了,过了一段时间有了新的需求,为了保险起见,这时候肯定不能直接在当前项目上进行开发,所以就有必要引入分支的概念了。

分支

在Git中用Master代表主线(主分支),也就是我们项目的正式版本,当需要添加新的功能或者有其他人想修改我们的代码时,只需要从主线版本中将代码拷贝到其他地方,形成一个分支,在这个分支上进行开发。如果分支开发的功能想要上线,也可以将分支代码与主线合并,同时这也使多人协同开发成为可能。

如果张三想要开发新的功能,李四也想开发一个新的功能,他们不需要在项目的正式版本中进行修改,而是在分支上进行独立的开发,确保代码没有问题后再与主线合并,避免了正式版本可能会出现错误的问题。

Git中每一个结点都是一个完整的项目,所以只需要多创建一个“指针”指向分支开始的位置即可。

😎与分支有关的命令

🥇1.创建分支、切换分支

创建一个新的分支,分支一般命名为feature-功能,比如:

$ git branch feature-login

查看当前状态。

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/Git-Study (master)
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   Hello.c
        new file:   temp1.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore


Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/Git-Study (master)
$

On branch master表明我们目前在主线(Master)上,要切换分支,可以:

$ git checkout feature-login

再看我们的状态:

branch

On branch feature-login说明现在分支已经从主线切换到了feature-loginhead指针也会指向我们的feature-login分支head永远指向当前操作的版本)。

🥇2.合并分支

首先在feature-login分支中创建文件branch.txt

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/Git-Study (feature-login)
$ touch branch.txt

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/Git-Study (feature-login)
$ echo aaa > branch.txt

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/Git-Study (feature-login)
$ git add .
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory
warning: LF will be replaced by CRLF in branch.txt.
The file will have its original line endings in your working directory

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/Git-Study (feature-login)
$ git commit -m 'br-first'
[feature-login 7c9ca12] br-first
 4 files changed, 3 insertions(+), 1 deletion(-)
 create mode 100644 .gitignore
 create mode 100644 branch.txt
 create mode 100644 temp1.txt

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/Git-Study (feature-login)
$ git status
On branch feature-login
nothing to commit, working tree clean

在文件夹中可以看到新创建的文件。

branch

如果要合并到主分支,首先切换回主分支:

$ git checkout master

在这里插入图片描述

选择分支合并:

$ git merge feature-login

merge

🥇3.合并冲突

当在版本3处创建了两个分支,并且这两个分支都对a.txt文件的同一处进行了修改,此时合并分支1再合并分支2会发生冲突

由于修改的是文件同一处,因此Git无法判断到底要合并哪一个版本,Git会把两个分支的修改都添加进文件中,并且提示我们需要手动进行修改

冲突

📑解决冲突(Conflict):

比如我们先创建两个分支b1、b2,b1在branch.txt中添加123,b2在branch.txt中添加456,切换到主分支依次进行合并。

合并b1:

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/Git-Study (master)
$ git merge b1
Updating 7c9ca12..65413f9
Fast-forward
 branch.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

合并b2,提示发生冲突:

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/Git-Study (master)
$ git merge b2
Auto-merging branch.txt
CONFLICT (content): Merge conflict in branch.txt
Automatic merge failed; fix conflicts and then commit the result.

打开branch.txt,可以看到Git将冲突的内容都进行了保留,需要我们手动调整。

解决

手动修改完成后,再进行提交:

$ git add .
$ git commit -m 'xxx'
🥇4.删除分支

分支已经成功合并到主分支(Master)中,或者分支已经不需要的时候,可以使用git branch -d 分支名将其删除。

删除b1分支:

$ git branch -d b1

del

🥇5.变基(合并提交)

在一个分支上经常会有很多此提交,使用 变基(rebase) 可以将多次 提交(commit) 合并为一个,让我们的版本管理更加简洁。

合并head所指向的提交以及它的前一次提交:

$ git rebase -i head~~

简书:mwangjs——git变基
https://www.jianshu.com/p/df49b3671757


使用GitKraken助你更高效📈

GitHub是国际上最大的代码托管平台,经常被网友戏称为”GayHub“——全球最大同性交友网站。~( ̄▽ ̄)~*

GitKraken是Git的图形管理工具,它的界面非常漂亮,文章开头已经介绍过了。

关于如何使用GitKraken来执行Git的各种操作,以及如何在GitHub上托管自己的代码,这里推荐B站 奇乐编程学院 的两个视频,讲解简单明了,同时带你快速浏览Git的使用流程。

视频主要介绍了图形化工具的使用,本文主要介绍Git命令行,图形化工具在实际使用中也十分重要,搭配食用更佳哦。

B站视频—奇乐编程学院 使用图形化界面操作Git

Git + GitHub 10分钟完全入门

B站视频—奇乐编程学院 Git+GitHub入门(进阶)

Git + GitHub 10分钟完全入门 (进阶)


多人协作开发—码云(Gitee)初体验🤺

Gitee可以看作是GitHub的中文版,两者学会了其中一个,另一个自然也就会了。

Gitee

Gitee是开源中国(OSChina)推出的基于Git的代码托管服务:

push

👩🏻‍🏫多人协作流程

由项目的发起人(组长)在Gitee中创建代码仓库,一般会创建两个分支:masterdevelop。仓库中的master主分支一般由组长进行管理,防止其他人将错误的代码提交到master主分支develop分支开放给其他人,允许其他人将代码提交至远程仓库,最终由组长管理其他人的提交并将develop分支合并到主分支

其他人想要参与项目的开发,可以将远程仓库 克隆(clone) 到本地,在本地进行独立的版本管理。建议先切换到develop分支,再创建新的分支进行新功能的开发,功能开发完后合并develop分支,确认无误后 推送(push) 至远程仓库的develop分支

多人协作流程

🙇🏻‍♀️创建第一个远程仓库(remote repo)

创建码云(Gitee)账号,进入Gitee主页。

Gitee

点击主页右上角的加号”+“,选择新建仓库

填写仓库的基本信息,点击创建仓库

新建仓库

根据提示创建git仓库并推送到gitee

进入仓库目录,打开gitbash,按照提示输入命令。

gitee

配置用户名和邮箱:

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/git-study (master)
$ git config --global user.name "xxx"

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/git-study (master)
$ git config --global user.email "xxx@163.com"

如果没有仓库根据提示创建新的仓库同时创建readme.md描述文件,如果已经创建好了仓库直接执行下面的命令。

将我们创建的仓库添加至gitee
push -u表示git会记录用户名和密码,只需在创建仓库时输入一次就可以了。

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/git-study (master)
$ git remote add origin https://gitee.com/......

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/git-study (master)
$ git push -u origin "master"

弹出窗口,输入gitee用户名与密码。

login

注意输入的是Gitee的用户名,不是姓名~

输入完成后我们创建的本地仓库会添加到Gitee中。

Mymel@DESKTOP-4QL2F94 MINGW64 ~/Documents/git-study (master)
$ git push -u origin "master"
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 448 bytes | 448.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.2]
To https://gitee.com/guo-hanzhe/gitee-study.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

gitee

👩🏻‍🔧参与到其他人的开发

参与其他人的开发我们可以将Gitee上的仓库克隆到本地。

$ git clone https://gitee.com/.......(仓库地址)

仓库分为公有私有两种,私有仓库只有在Gitee被邀请的人才能访问。

在本地开发进行新功能的开发,开发完后推送Gitee远程仓库

切换至develop分支,并在此基础上创建新的分支feature-new

$ git checkout develop
$ git branch feature-new

施工ing...

先合并到本地的develop分支。

$ git checkout develop
$ git merge feature-new

Master分支一般是不允许其他人随便推送的,我们一般是推送至develop分支。

此时已经在develop分支上,直接推送就可以。

$ git push

👉🏻多人协作时的冲突

这一点类似于前文中提到的合并冲突。当在我们编写本地仓库中的代码时,如果其他人在这个时候向Gitee远程仓库进行了推送,那么我们的代码就和远程仓库中的不一致了,直接推送会提示错误,这时需要我们 拉取(pull) 远程仓库中的代码,在本地解决冲突以后再来推送。

冲突

拉取(pull) 可以看作是push的逆向过程,push是将代码推送至远程仓库,pull是将远程仓库的代码合并到本地,并且如果有冲突时需要我们手动解决。

推送前先pull一下:

$ git pull

解决冲突ing

$ git push

🙋🏻‍♂️🤝🏻👨🏻‍💼跨团队开发—Fork仓库

在Gitee中有一些仓库不希望其他人随意修改的。比如小明把仓库的所有分支权限都改为了受保护,我们没办法直接将我们的代码推送给他,这时可以在Gitee中Fork他的仓库,这会将他的远程仓库复制一份到我们的Gitee账户下。

如果团队中有很多人共同参与进项目开发,只需要组长将小明的仓库Fork到自己的账户下,小组的成员们只需要克隆组长的仓库就可以了。

fork

如果你觉得小明会采纳你对代码的修改,你还可以向他发送一个pull request,如果小明觉得你的代码对他有帮助,他会接受pull request,并将你的修改同步到他自己的仓库。

pull request

Gitee中还提供了Issue功能,组长可以创建一个Issue用来追踪bug,指派任务,创建完后,所有组员都会接收到一个组长发布Issue的通知。

issue


使用SSH协议免密登录Gitee

Git关联远程仓库可以使用http协议或者ssh协议。

  • SSH协议:

    依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

  • HTTPS协议:

    相比SSH协议,可以使用用户名/密码授权是一个很大的优势,这样用户就不用在使用 Git之前先在本地生产SSH密钥对,再把公钥上传到服务器。对非资深的使用者,或者系统上缺少SSH相关程序的使用者,HTTP协议的可用性是主要的优势。与SSH协议类似,HTTP协议也非常快和高效。

ssh

Gitee提供了基于SSH协议的Git服务器,在使用SSH协议访问仓库之前,需要先配置好账号/仓库的SSH公钥。

打开Git bash,使用以下命令生成sshkey:

$ ssh-keygen -t rsa -C "邮箱地址"
  • 注意:填入的邮箱只是生成sshkey的名称,并不要求具体命名为某个邮箱,仅仅是为了辨识。

依据提示敲三次回车Enter,生成sshkey。

生成sshkey后,可以在Home目录~/.ssh/id_rsa.pub中查看你的公钥public key

id_rsa

复制id_rsa.pub中的内容。

打开Gitee的设置页面,将公钥复制进去。

ssh-key

点击确定,配置好SSH以后下次再 克隆(Clone) Gitee上的仓库就不需要再输入用户名和密码了。


在IDEA中使用Git

拉取Gitee中的项目到IDEA中:

打开IDEA,创建项目时选择Get from VCS,在URL中输入仓库地址。

idea

如果使用Https协议,需要输入用户名和密码:

gitee登录

点击左下角的git,可以打开图形化工具:

git

对代码进行修改后,如果需要提交或者推送等操作,可以右键我们的项目目录,在下拉菜单中选择Git,里面包含了Git的各种操作。

git

文件名的三种颜色:

  • 黑 色 \color{black}{黑色} ——表示文件已经提交。
  • 绿 色 \color{green}{绿色} 绿——表示文件已经存入暂存区,但是还没提交。
  • 红 色 \color{red}{红色} ——表示文件已经修改。

此外IDEA中可以安装Gitee插件,实现自动登录等功能。


总结👏🏻👏🏻👏🏻

  • ✨创建本地仓库的三步:

    1. 初始化仓库 $ git init
    2. 提交至缓存区 $ git add Hello.c
    3. 提交至(本地)仓库 $ git commit -m 'first'
  • ✨Git的三种状态:

    1. 已修改
    2. 已暂存
    3. 已提交
  • ✨Git常用命令:

    1. 查看当前状态 git status
    2. 查看历史操作记录 git log
    3. 版本回退 git reset head~
    4. 版本对比 git diff
    5. 删除文件 git rm
    6. 重命名 git mv 旧文件名 新文件名
    7. 忽略文件 echo *.tex >> .gitignore
  • ✨版本分支管理:

    1. 创建分支 git branch
    2. 切换分支 git checkout
    3. 合并分支 git merge
    4. 删除分支 git branch -d
    5. 变基 git rebase
  • ✨代码托管平台Gitee、GitHub:

    1. 克隆仓库 git clone 远程仓库地址
    2. 推送 git push
    3. 拉取 git pull
  • ✨Git图形化界面工具:GitKrakenTortoiseGit

  • ✨使用SSH协议可以免密登录Gitee。

  • ✨IDEA提供了图形化界面来使用Git。

点赞

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mymel_晗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值