首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >关于GIT配置安装及使用

关于GIT配置安装及使用

作者头像
跟着飞哥学编程
发布于 2022-12-02 07:40:44
发布于 2022-12-02 07:40:44
67900
代码可运行
举报
运行总次数:0
代码可运行

1-git安装及公钥配置

Windows

https://git-scm.com/downloads下载,安装使用,一直下一步即可。

MacOS

在系统的终端中直接输入:git --version 命令,如果没有安装Git的话会提示安装,按照提示一步一步安装即可。

Linux

一般常见发行版的软件仓库中都有Git软件,可以直接安装。例如debian/ubuntu:sudo apt-get install git

生成密钥

桌面右击打开git bash

输入命令

$ ssh-keygen -t rsa -C "个人邮箱地址"

按3个回车,密码为空。

最后在C:\Users{windows用户名}\.ssh目录下得到了两个文件:id_rsa和id_rsa.pub

添加公钥

  1. 打开id_rsa.pub将其中内容复制
  1. 打开浏览器访问https://gitcode.net/-/profile,未登录则先登录再访问
  2. 点击右上角个人头像-点击设置菜单-点击左侧SSH密钥,在密钥输入框中粘贴复制的内容,点击添加密钥按钮完成公钥的添加
  1. 完成git安装和公钥配置,可以开始git clone下载代码了。

2-如何使用git

配置Git

安装完成后,还需要进行最后一步配置,在终端中输入以下命令来设置自己的姓名和邮箱,以后每一次提交都将以这个标识你的身份

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

设置git仓库能正常显示中文

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git config --global core.quotepath false

克隆Git仓库

何为仓库?我们可以理解为一堆需要进行版本管理的文件的集合。

在文件夹下右击鼠标-选择Git Bash Here 打开Git命令行

通过浏览器获取仓库地址,页面中点击仓库首页克隆按钮,点击通过SSH Clone项目的复制链接按钮,得到clone地址,在命令行输入 git clone 复制的ssh clone链接

跟踪文件变更

现在我们已经克隆好一个Git仓库了。

进入仓库目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd c4-java-base-authentication

我们使用git status来查看一下当前仓库的工作区状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

现在我们来添加点东西。

如果README.md 文件不存在,使用touch来新建一个文本文件;如果存在则不需要 touch 创建。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ touch README.md

然后我们输入点内容进去,"hello world" 按要求修改成相应内容。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ echo "hello world" >> README.md

这时候我们再使用git status来查看一下工作区状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git status
On branch master

No commits yet

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

nothing added to commit but untracked files present (use "git add" to track)

这时提示有一个未被跟踪的文件(untracked files) README.md,并且提示你可以使用命令git add <file>来跟踪它。这里的<file>是文件路径。就是说你可以是使用git add README.md来跟踪它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git add README.md
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
	new file:   README.md

我们跟踪该文件后,再查看一下工作区状态的时候,发现提示是有一个新的文件正准备被提交(commit),并且你可以使用git rm --cached <file>来撤销对该文件的跟踪。这样该文件的任何修改就不会被git进行版本管理了。

提交文件变更

接下来我们要提交这个文件的变更,使用git commit命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git commit -m "README"

-m 表示给这个提交一个信息,可以理解成提交说明。用来说明本次提交的基本信息,例如:本次提交都干了些啥,做了什么修改等。如果说明信息很多,我们可以直接使用git commit命令,不带-m参数,这时git会打开一个设定好的本地文本编辑器,你可以在编辑器中输入更多的提交说明内容并保存。

提交(commit)可以理解成一系列文件的变更的集合。整个仓库的历史的变更就是以一个个commit为单位串联起来的。在仓库历史变更的长线上,一个个提交犹如珍珠一般镶嵌在上面。

我们提交之后,再执行git status命令,被add的这些文件就不会再在输出信息中了。我们可以理解为这些文件的变更已经被提交,不再出现在工作区了。除非你再次对这些文件进行修改以及add

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git status
On branch master
nothing to commit, working tree clean

推送到远程仓库

git commit命令只是将更新提交到本地仓库,要实现协作开发,需要将更新推送到远程仓库,输入下列命令执行推送

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git push origin master

如果远程仓库有更新,即本地仓库版本落后于远程仓库,则推送失败,报错如下:

需要先拉取远程仓库更新

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git pull origin master

Git 命令行弹出合并信息编辑

直接输入 :q 退出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ :q

再执行推送命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git push origin master

注意:也可以使用Git GUI实现提交和推送,Git GUI在提交时可以直观的看到哪些文件有更新,操作过程查看本目录下【README-00-通用-1-Git.md】的扩展资料 - Git GUI界面操作示意图

3-git合并父工程更新

  1. 给自己的仓库(origin)添加上游仓库(upstream)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git remote add upstream git@gitcode.net:review/c-practice/c4-java-base-authentication.git
  1. 拉取上游仓库(upstream)更新
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git pull upstream master
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
注意:如果自己仓库(origin)有提交,则需合并上游仓库(upstream)的更新,在合并信息中输入下面命令,直接退出合并信息的编辑
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
:q
  1. 将代码推送到到自己的仓库origin.
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git push origin master

4-git分支管理

创建/切换分支

分支git里面又一个十分重要的概念,我们在一条历史变更上线(主分支)上提交我们的修改,也可以再多条历史变更长线(其他分支)上提交我们的修改。这就为我们并行开发提供方便。我们可以从主分支的某一个提交点上新建一个分叉(新分支),然后又新建一个分叉(另一个新分支),在两个新分支上开发不同的功能,最终又可以把两个新的分支合并到主分支上。

那么如何新建一个分支呢?十分简单,我们只需要执行一下命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git branch dev

这样我们就新建好了一个新的分支dev了。使用git branch来查看分支。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git branch
dev
*master

*号表示当前分支仍然在master分支上,虽然我们新建一个dev分支。

如何切换到dev分支?执行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git checkout dev

这样我们就切换到了dev分支上,就可以在dev分支上开发相关功能了。

上述新建分支和切换分支是两个命令,实际上我们可以使用一条命令来新建一个分支,并切换到这个分支

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git checkout -b dev02

如何删除分支呢? 我们不能身处一个分支上,来删除这个分支。例如我要删除dev02这个分支,我就必须切换到其他分支上

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git checkout master

然后执行git brach -d dev02命令来删除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git branch -d dev02

有时候提示dev02上有变更没有合并到master,不让你删除。这时你可以使用-D来强制删除。这并不是推荐做法,除非你确定不想要dev02分支的变更

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git branch -D dev02

合并分支

我们在dev分支上做了很多开发,觉得可以了。这个时候就需要把dev分支合并到master分支上,这样dev分支上的所有的提交就都合并到master分支了。

我们先在dev分支上做一些变更

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git checkout dev
$ touch config.txt
$ echo "config" >> config.txt
$ echo "hehe" >> README.md
$ git add .
$ git commit -m "添加配置文件以及修改README.md"

好了,我们在dev分支上做了一些变更(新建了config.txt文件并添加了内容,给README.md文件追加了内容)并提交了。我们使用了git add .来表示跟踪所有的文件变动(新增和修改)

切换到master分支

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git checkout master

合并dev分支到master

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git merge dev

这样我们就将dev上的所有变更合并到了master分支上了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C语言学习-函数(上)
return后边可以是⼀个数值,也可以是⼀个表达式,如果是表达式则先执⾏表达式,再返回表达式 的结果。例如:
ImAileen
2024/01/18
1910
C语言学习-函数(上)
C语言——E/函数
⼀个⼤的计算任务可以分解成若干个较小的函数(对应较小的任务)完成。同时⼀个函数如果能完成某项特定任务的话,这个函数也是可以重复用的,提升了开发软件的效率。
用户11015888
2024/03/11
2290
C语言——E/函数
【C语言】函数超详解总结
数学中我们其实就见过函数的概念,比如:一次函数 y=kx+b ,k和b都是常数,给一个任意的x,就得到一个y值。
用户11290673
2024/09/25
1670
【C语言】函数超详解总结
关于我、重生到500年前凭借C语言改变世界科技vlog.6——函数
C语言中规定了各种法则,C语言本身并不提供库函数,但编译器厂商根据国际标准的ANSIC规定的一些函数标准给出了一些函数,这些函数就被称为库函数
DARLING Zero two
2024/11/19
1000
关于我、重生到500年前凭借C语言改变世界科技vlog.6——函数
C语言----函数
c语言中的函数就是一个完成某项特定的任务的一段代码,这段代码有特殊的写法和调用方法
Undoom
2024/09/23
5250
C语言----函数
【C语言篇】从零带你全面了解函数(包括隐式声明等)
数学中我们其实就⻅过函数的概念,⽐如:⼀次函数 y=kx+b ,k和b都是常数,给⼀个任意的x,就 得到⼀个y值。
半截诗
2024/10/09
5060
【C语言篇】从零带你全面了解函数(包括隐式声明等)
C语言函数基础知识详解
数学中我们其实就见过函数的概念,比如:一次函数 y=kx+b ,k和b都是常数,给一个任意的x,就得到一个y值。
fhvyxyci
2024/09/24
1710
C语言函数基础知识详解
C语言学习系列-->【函数】详细
库函数相关头⽂件:https://zh.cppreference.com/w/c/header
南桥
2024/01/26
1900
C语言学习系列-->【函数】详细
C语言:函数
数学中我们见过函数的概念,例如y=kx+b,k和b都是常数,给任意一个x就可以得到y
小陈在拼命
2024/02/17
6130
C语言:函数
【C语言】-- 函数还没搞明白吗?来看看这篇吧
在C语言中,函数也被称为“子程序”。函数就是一段完成特定任务的代码块,它可以**接收输入的数据(参数),并返回一个值**。而C语言程序就是由一个个函数组成的。 C语言中常见的两类函数:
User_芊芊君子
2025/04/08
1440
【C语言】-- 函数还没搞明白吗?来看看这篇吧
函数
😀欢迎来到我的代码世界~ 😁 喜欢的小伙伴记得一键三连哦 ૮(˶ᵔ ᵕ ᵔ˶)ა
编程交流
2024/05/11
1570
函数
第6讲:函数
数学中我们其实就见过函数的概念,比如:一次函数 y=kx+b ,k和b都是常数,给一个任意的x,就得到一个y值。
用户11290648
2024/09/25
1310
第6讲:函数
【C语言基础】:函数详解
C语言是一种面向过程的编程语言,函数是C语言中的基本概念之一。C语言中的函数是一段被命名的、可重复利用的代码块,用于执行特定的任务或操作。函数使程序模块化,提高了代码的可读性和维护性。它封装了一系列的操作或任务,并可以通过函数名进行调用和执行。
爱喝兽奶的熊孩子
2024/04/10
2910
【C语言基础】:函数详解
初识c语言函数
在C语言中我们⼀般会见到两类函数: 库函数和自定义函数 下面就分别介绍这两种函数
用户11029269
2024/03/19
1380
初识c语言函数
【C语言】一篇文章带你深度理解函数
C语言中也引入了函数的概念,有些翻译为:子程序。C语言中的函数就是一个完成某项特定的任务的一小段代码。这段代码是有特殊的写法和调用方法的。
云边有个稻草人
2024/10/21
5920
【C语言】一篇文章带你深度理解函数
【C语言】函数
    数学中我们其实就⻅过函数的概念,⽐如:⼀次函数 y=kx+b ,k和b都是常数,给⼀个任意的x,就得到⼀个y值。 其实在C语⾔也引⼊函数(function)的概念,有些翻译为:⼦程序,⼦程序这种翻译更加准确⼀些。     C语⾔中的函数就是⼀个完成某项特定的任务的⼀⼩段代码。这段代码是有特殊的写法和调⽤⽅法的。     C语⾔的程序其实是由⽆数个⼩的函数组合⽽成的,也可以说:⼀个⼤的计算任务可以分解成若⼲个较⼩的函数(对应较⼩的任务)完成。同时⼀个函数如果能完成某项特定任务的话,这个函数也是可以复⽤的,提升了开发软件的效率。     在C语⾔中我们⼀般会⻅到两类函数:
TANGLONG
2024/10/15
6460
【C语言】函数
【C语言】函数的系统化精讲(一)
函数的概念: 函数是数学中的概念,可以用来描述线性关系,如一次函数y=kx+b。 在C语言中,函数是一小段代码,用来完成特定任务,可以通过给定的输入参数得到输出结果。
学习起来吧
2024/02/29
2000
【C语言】函数的系统化精讲(一)
【C语言】了解函数,认识函数
函数(function)的概念,有些翻译为:子程序,子程序这种翻译更加准确⼀些。C语言中的函数就是一个完成某项特定的任务的一小段代码。C语⾔的程序其实是由⽆数个小的函数组合而成的,也可以说:一个大的计算任务可以分解成若干个较小的函数(对应较小的任务)完成。
用户11367452
2024/11/21
2870
【C语言】了解函数,认识函数
C语言(函数)
C语言中的函数,准确来说应该叫子程序,与数学中的函数不同,C语言中的函数就是一个完成某项特定任务的一小段代码。这段代码是有特殊的写法和调用方法的。
_小羊_
2024/10/16
6200
C语言(函数)
嵌套调用和链式访问
嵌套调用就是函数之间的互相调用,每个函数就是⼀个乐高零件,正是因为多个乐高的零件互相无缝的配合才能搭建出精美的乐高玩具,也正是因为函数之间有效的互相调用,最后写出来了相对大型的程序。 假设我们计算某年某月有多少天?如果要函数实现,可以设计2个函数:
用户11328191
2024/10/23
2040
嵌套调用和链式访问
相关推荐
C语言学习-函数(上)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档