本文主要讲解了:
1、git的基本介绍和基本的工作流程。
2、git的注册、下载以及安装的教程。
3、git的零基础入门超级详细的使用方法。
4、git远程仓库 创建项目以及密钥的生成教程
5、git推送文件到远程仓库的教程。
目录
[1.1 git注册](#1.1 git注册)
[2.1 创建TestGit文件夹](#2.1 创建TestGit文件夹)
[2.2 git初始化](#2.2 git初始化)
[2.3 git提交文件](#2.3 git提交文件)
[2.4 退回到指定版本](#2.4 退回到指定版本)
[2.5 撤销和删除](#2.5 撤销和删除)
[(1)撤销git restore](#(1)撤销git restore)
[(2)删除git rm](#(2)删除git rm)
[3.1 密钥生成](#3.1 密钥生成)
[3.2 密钥配置](#3.2 密钥配置)
[2.1 git推送方式上传文件](#2.1 git推送方式上传文件)
[2.2 GitHub仓库创建文件的方式](#2.2 GitHub仓库创建文件的方式)
[2.3 本地直接上传方式](#2.3 本地直接上传方式)
一、git介绍
Git 是一个分布式版本控制系统,用于跟踪计算机文件的更改,并协调由多人进行的更改。它通常用于源代码管理,但也可以用于任何类型的文件集合。Git 允许开发者记录每次对项目的修改,并且可以轻松地回滚到早期的版本,或者合并不同的版本。
Git 由 Linus Torvalds 在 2005 年创建,最初是为了帮助开发 Linux 内核,但现在已被广泛应用于各种软件项目中。Git 的一些主要特性包括:
- **分布式:**Git版本控制系统是一个分布式的系统,是用来保存工程源代码历史状态的命令行工具。
- **保存点:**Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目的状态;可以在该保存点将多人提交的源码合并, 也可以回退到某一个保存点上。
- **Git离线操作性:**Git可以离线进行代码提交,因此它称得上是完全的分布式处理,Git所有的操作不需要在线进行;这意味着Git的速度要比SVN等工具快得多,因为SVN等工具需要在线时才能操作,如果网络环境不好, 提交代码会变得非常缓慢。
- **Git基于快照:**SVN等老式版本控制工具是将提交点保存成补丁文件,Git提交是将提交点指向提交时的项目快照,提交的东西包含一些元数据(作者,日期,GPG等)。
- **Git的分支和合并:**分支模型是Git最显著的特点,因为这改变了开发者的开发模式,SVN等版本控制工具将每个分支都要放在不同的目录中,Git可以在同一个目录中切换不同的分支。
- **分支即时性:**创建和切换分支几乎是同时进行的,用户可以上传一部分分支,另外一部分分支可以隐藏在本地,不必将所有的分支都上传到GitHub中去。
- **分支灵活性:**用户可以随时创建、合并、删除分支,多人实现不同的功能,可以创建多个分支进行开发,之后进行分支合并,这种方式使开发变得快速、简单、安全。
- **非线性开发模式:**支持非线性的工作流,即每个开发者可以在自己的机器上克隆整个仓库及其完整的历史记录。
- **快速性能:**Git 被设计为能够快速处理从小型到非常大型的项目。
- **完整性保证:**通过校验每次提交的数据来确保数据的完整性。
Git 最著名的一个应用是 GitHub,这是一个基于 Git 的在线服务,提供了代码托管功能,同时也支持团队协作工具和其他功能,使得开源项目和团队合作变得更加简单。除了 GitHub,还有 GitLab、Bitbucket 等其他提供类似服务的平台。
二、Git工作流程
Git的一般工作流程如下:
- 从远程仓库中克隆 Git 资源作为本地仓库。
- 从本地仓库中checkout代码然后进行代码修改
- 在提交前先将代码提交到暂存区。
- 提交修改:提交到本地仓库。本地仓库中保存修改的各个历史版本。
- 在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。
下面展示了Git的工作流程:
三、git注册、下载与安装
git的注册、下载以及安装的详细教程:
1、git注册
git在下载与安装之前先要注册一个账号,git的注册教程如下:
1.1 git注册
进入下列连接先进行git账号注册:GitHub官网
- 点击Sing up:
- git账号注册【首先用邮箱进行注册,然后输入注册密码(自定义),最后输入用户名(自定义)】
git的账号注册成功。
2、git下载
git的下载详细教程如下:
点击下载 进入git下载页面,然后根据自己电脑的配置需求进行下载:
3、git的安装步骤
在Windows中安装git,找到下载到本地的.exe文件,双击进行安装:
- 点击next(下一步):
- 选择安装路径,然后点击下一步:
- 添加桌面快捷方式,然后点击下一步:
- 默认,下一步:
- 选择Git的默认编辑器,然后点击下一步进行安装:
选择Notepad,它是Windows自带的一个简单的GUI编辑器:
- 开始安装:
- 安装完成,点击Finish:
- 安装完成后,桌面就会出现如下图标表示安装成功:
四、Git的零基础入门
1、说明
git一般情况下只要会如下三步就可以了:
(1)git add .(git 提交 全部文件)
git add xx 命令可以将xx文件添加到暂存区,如果有很多改动可以通过get add -A .来一次添加所有改变的文件。注意 -A 选项后面还有一个点。git add -A 表示添加所有内容,git add . 表示添加新文件和编辑过的文件不包括删除的文件;git add -u 表示添加编辑或者删除的文件,不包括新添加的文件。
(2)git commit -m "提交注释"
(3)git push origin 分支名称,一般使用: git push origin master
2、git的基本使用
2.1 创建TestGit文件夹
进入到git的安装盘符下,我安装到D盘:
bash
cd D: #进入D盘
mkdir TestGit #创建TestGit文件夹
- 创建如下:
2.2 git初始化
git init说明:
git init 是 Git 版本控制系统中的一个命令,用于在一个新的目录中初始化一个新的 Git 仓库。执行 git init 命令会创建一个名为 .git 的隐藏目录,这个目录包含了所有 Git 需要跟踪的信息,例如:
- 工作区的状态(哪些文件已被修改、新增或删除)
- 提交对象(commit objects)
- 分支和标签(branch and tag references)
- 远程仓库的配置信息(remote repository configurations)
当你在一个目录中执行 git init 命令之后,该目录就变成了一个 Git 仓库,你就可以在这个目录中使用其他的 Git 命令来进行版本控制操作,比如添加文件到暂存区 (git add)、提交更改 (git commit)、查看状态 (git status)、克隆远程仓库 (git clone)、推送更改到远程仓库 (git push) 等等。
(1)通过命令git init初始化
git init
把这个目录变成git可以管理的仓库,如下:
这时候你当前TestGit目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件,否则,会把git仓库给破坏了。如下:
如上,表示git init初始化执行成功。
2.3 git提交文件
为便于测试,首先先创建一个test.txt文件在TestGit目录下,里面随便写一些文字内容:
- 第一步:添加文件 :使用命令
git add test.txt
添加到暂存区里面去。如下:
如果和上面一样,没有任何提示,说明已经添加成功了。
使用 git add
命令将更改的文件添加到暂存区。如果 test.txt
是一个新文件并且尚未被添加过,可以直接使用:git add test.txt``进行添加。
- 第二步:提交文件并注释 :git commit -m "test.txt提交"
首先使用 git commit
命令将暂存区里的更改提交到本地仓库,其次通过-m "test.txt提交"附带一条提交信息。
即这条命令的意思是将暂存区(staging area)里的所有更改(包括新添加的文件、修改过的文件或删除的文件)提交到本地仓库,并附带一条提交信息 "test.txt提交"。
- 第三步:查看状态 :可以使用
git status
查看当前工作目录的状态,确认文件是否已经被添加到了暂存区。
通过命令git status来查看是否还有文件未提交,如上表示提交成功。
- 修改test.txt的内容:
- 再来查看提交的状态:
上面的命令告诉我们 test.txt文件已被修改,但是未被提交的修改。
- 查看被修改的内容:
- 内容已经被修改过,所以我们需要重新提交:
但是此时会报错,这是因为文件提交前得先把文件放到暂存区。
继续使用命令 git add test.txt
添加到暂存区里面去,然后使用git commit -m "文件新加内容提交"
命令将暂存区里的test.txt文件提交到本地仓库中去。如下:
- 查看历史修改记录:git log
如果嫌上面显示的信息太多的话,我们可以使用命令 git log ---pretty=oneline 演示如下:
- 总结:
git提交文件主要是如下几个步骤:
- 编辑文件:首先,需要编辑或创建一个 test.txt文件,然后保存更改。
- 添加文件:其次,使用 git add 命令将更改的文件添加到暂存区。如果 test.txt 是一个新文件并且尚未被添加过,可以直接使用:git add test.txt。注意:如果是 test.txt 文件发生修改了,则同样使用上面的命令进行提交到暂存区。
- 提交更改:然后,使用 git commit 命令将暂存区里的更改提交到本地仓库。
- 查看状态:最后,使用 git status 查看当前工作目录的状态,确认文件是否已经被添加到了暂本地仓库。
2.4 退回到指定版本
提交到本地仓库的文件如何退回到上一个版本、上两个版本或者多个版本前的内容:
如下,有四个版本:
分别表示:版本1是第一次提交到仓库的内容,版本2是第二次提交到仓库的内容,以此类推。
现在仓库里是版本四即第四次提交后的内容。
- 回到上一个版本:git reset --hard HEAD^
此时打开test.txt进行查看:
提交回到版本3,最近一次提交的版本4已被删除,打开txt文本,发现"版本4---测试"已被删除
- 回到上两个版本:git reset --hard HEAD^^
即最近添加的版本2和版本3已经被删除,回到了版本1:
- 回到上n个版本:git reset --hard HEAD~n
假如要回退到最新版本该怎么办呢?
- 可以使用git reset --hard 版本号
如下:
- 首先查询版本号:git reflog
比如说恢复到版本4的内容:git reset --hard fb6d734:
此时,再打开test.txt文本,内容就回来了:
2.5 撤销和删除
(1)撤销 git restore
比如我们新添加一行内容:
现在我可以有如下几种方法可以做修改:
- 第一: 如果知道要删掉哪些内容的话,直接手动更改去掉那些需要的文件,然后
add
添加到暂存区,最后commit
掉。 - 第二:可以按以前的方法直接恢复到上一个版本。使用
git reset --hard HEAD^
但是现在我不想使用上面的2种方法,我想直接想使用撤销命令该如何操作:
git restore -- test.txt
,再通过cat test.txt查看,内容就恢复了:
命令 git restore -- test.txt
的意思就是,把test.txt文件在工作区做的修改全部撤销。
(2)删除git rm
在 Git 中,如果你想移除一个文件 test.txt
,你需要使用 git rm
命令。这是因为 Git 跟踪的是文件的版本历史,而不仅仅是文件系统中的文件。使用 git rm
可以确保 Git 仓库中的状态与文件系统的状态保持同步。
- 1. 移除已跟踪的文件
如果想要从 Git 仓库中完全移除一个已跟踪(已添加到Git仓库)的文件 test.txt
,可以使用以下命令:
git rm test.txt
这条命令将会:
a. 从 Git 仓库的历史中移除文件 test.txt
。
**b.**从工作目录中删除该文件。
- 2. 仅从 Git 仓库中移除文件(保留工作目录中的文件)
如果你只想从 Git 仓库的历史中移除 test.txt
,但仍然保留工作目录中的文件,可以使用 --cached
选项:
git rm --cached test.txt
这条命令将会:
a. 仅从 Git 仓库中移除 test.txt
,保留文件在工作目录中的副本。
**b.**这样做可以让你有机会在完全删除文件之前检查文件的状态。
- 3. 强制移除
如果你遇到权限问题或者其他错误,可以使用 -f
或 --force
选项来强制移除:
git rm -f test.txt
这条命令将会:不管是否有未提交的更改,都会移除文件。
- 4. 提交更改
移除文件后,你应该将这次改动提交到仓库:
git commit -m "移除了 test.txt 文件"
这条命令将会:记录这次移除操作,确保历史记录清晰。
删除文件演示如下:
此时在目录中,该文件已被删除:
(3)撤销删除
通过命令:git restore -- test.txt
进行撤销已删除的文件:
此时回到电脑存放该文件的目录下,该文件已恢复:
五、远程仓库
1、登录Git
进入该路径登录GitHub:登录
- 第一步:点击Sign in 进行登录
- 第二步:输入上面注册的用户名和密码,然后进行登录
登录后的界面如下:
2、创建项目
接下来是创建项目:
- 创建项目:
输入项目名称、然后是选择对外公开是还是私有,最后点击创建。
创建成功后页面如下:
3、ssh密钥生成与配置
3.1 密钥生成
首先在git的终端中输入指令生成密钥:
-
ssh密钥生成指令:
ssh-keygen -t rsa
执行命令完成后,在window本地用户.ssh目录C:\Users\用户名\.ssh下面生成如下名称的公钥和私钥:
3.2 密钥配置
密钥生成后需要在github上配置密钥本地才可以顺利访问。
- 点击头像-->进入设置:
- 点击SSH and GPG keys-->New SSH key:
在key部分将id_rsa.pub文件内容添加进去,然后点击"Add SSH key"按钮完成配置:
- 首先,将公钥id_rsa.pub的内容复制到密钥中,(id_rsa.pub文本打不开,可以先修改后缀名为.txt打开后复制了再修改回去),如下:
此时,ssh密钥配置成功:
六、同步到远程仓库
通过git同步本地的文件或者代码等到远程仓库
1、远程仓库连接
- 首先,点击头像回到主页:
- 然后,点击此处去到创建的项目下:
- 根据GitHub提示,有如下命令可以同步文件到远程仓库:
- 将上述指令复制到git终端中进行运行,如下:
- 进入后会看到如下验证码和网址:
- 进入网址,输入验证码:
- 登录成功:
- 点击Authorize....:
至此,设备已连接成功,回到主页刷新网页:
2、推送文件到GitHub仓库
2.1 git推送方式上传文件
由于远程库是空的,我们第一次推送master
分支时,加上了 --u
参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
从现在起,只要本地作了提交,就可以通过如下命令:
git push origin master
假如我们在该目录下新加一个.py文件:
- 推送:
- 推送失败:
为什么呢?
因为该文件还未提交,故需要提交才能推送:
再去刷新GitHub网页,labelme2voc.py文件已被推送成功:
2.2 GitHub仓库创建文件的方式
还可以通过在GitHub仓库创建文件,然后将代码复制到创建的文件上的方式进行上传代码,例如我在GitHub仓库创建一个名为test1.py的文件:
- 首先,点击Create new file:
- 其次依次填入文件名 需要上传的代码,最后提交:
- 然后点击提交,创建成功:
2.3 本地直接上传方式
还可以通过直接从本地上传文件的方式进行上传。
- 本地上传:点击Upload files:
- 然后选择上传的文件,点击提交上传:
上传成功:
至此,文件同步到远程仓库的步骤就完毕了。