目录
一、什么是git
1、什么是会合式与分布式:
2、git的优势:
3、git的安装
二、git如何利用
1、git init创建仓库
2、删除仓库
3、git clone克隆仓库
4、git的工作区域和文件状态
4.1、工作区域:
4.2、文件状态:
5、git reset回退版本
三种回退方式:
(1、git reset --soft:
(2、git reset --hard :
(3、git reset --mixed :
6、git diff检察差异
6.1检察工作区、暂存区、当地仓库之间的差异
6.2检察不同版本之间的差异
7、从版本库中删除文件
三、git 分支
1、什么是git 分支
2、基本语法
2.1、检察分支
2.2、创建分支
2.3、切换分支
2.4、合并分支
2.5、删除分支
3、远程分支
四、如何利用gitHub大概gitee等远程仓库
1、配置SSH公钥
2、连接当地仓库与远程仓库
git push
git pull
一、什么是git
git是一个开源的分布式版本控制系统(VCS),用于灵敏高效地处理任何项目,可以对代码不断进行修改,版本控制系统能记录到每次代码的变革,方便回到之前某个版本。
1、什么是会合式与分布式:
会合式:只有一个中央服务器存储全部版本,只能在中央服务器上下载最新版本,添加或修改一些内容,然后将修改过后的版本上传到中央服务器。
优点:利用简单
缺点:假如中央服务器出现故障大概网络连接出现标题,那么全部人都无法工作。
分布式:每个人的电脑上都有一个完整的版本库,可以在当地进行修改,不需要考虑其他标题,与中央服务器互不影响,当我们需要把自己的修改内容分享给其他人的时间,只需要将仓库同步一下就可以了。
2、git的优势:
分布式:与 会合式版本(SVN)不同,git分布式意味着每个参与项目开发的开发者当地电脑上都有完整的代码仓库副本,包罗了项目完整的历史记录、全部分支等信息。
高效的分支管理:多个开发者可以同时开发不同的功能,提高开发服从,可以创建、切换、合并分支。
3、git的安装
git下载官网:Git中文网 官网
这里有许多多少种下载方式,选择一个来安装git ,下载完毕后可以用 git --version指令来检察git 的版本号,来查验是否安装成功。
二、git如何利用
1、g it init创建仓库
打开终端
step1 :创建一个空白目录,并进入到该目录下:
step2 :初始化当地仓库:
这个目录就从一个普通的文件夹变成了一个可以被 Git 管理的仓库
step3 :检察该目录下有没有.git目录:
留意:.git目录是一个隐藏目录,需要ls -a来检察
假如出现.git 这时就成功将该目录初始化为git仓库。chule
.git目录存放了git仓库全部的数据,可以检察一下:
除了利用 git init 创建仓库,我们也可以直接利用 git init < 目录名称 >这个指令创建仓库,与git init 直接创建仓库的区别是,git init 在指定目录下执行该命令。
2、删除仓库
在git管理的目录下利用指令删除git,删除以后该目录不再被git管理,是一个普通的目录,运行 ls -a 指令也不会看到.git文件了。
3、git clone克隆仓库
可以从gitHub大概gitee这种远程服务器上来克隆一个已经存在的仓库
可以将这个远程仓库的文件直接克隆到当地
4、git的工作区域和文件状态
4.1、工作区域:
(1、工作区 : 当地工作目录,现实操纵的目录,包罗了项目的全部文件和子目录。可以在其中检察、编辑、和创建文件。用于开发者进行日常开发工作,修改代码、添加新功能等。
(2、暂存区 :暂时存储区域,用于保存即将提交到git仓库的修改内容
(3、当地仓库 : 保存了项目的版本历史,是git存储代码和管理信息的重要位置
通过git init 命令创建的谁人仓库,包罗了完整的项目历史和元数据
- git add //将工作区的文件添加到暂存区
- git commit //将暂存区的文件添加到本地仓库里
复制代码 4.2、文件状态:
未跟踪Untrack:新创建的还没有被git管理的文件
未修改Unmodified:已经被git管理,但还没修改
已修改Modified:已经修改,但还没有添加到暂存区的文件
已暂存Staged:已经修改,并添加到暂存区的文件
git status:检察文件状态
git add : 将工作区的文件添加到暂存区
git commit :将暂存区的文件添加到当地仓库
git log / git reflog :检察具体的提交记录
git log --oneline:检察简便的提交记录
演示:
我们用echo 指令创建一个新的文件后,用git status 检察文件状态,这个新创建的文件
此时这个新创建的文件是一个未跟踪状态,当我们执行 git add 可以将这个文件添加到暂存区,文件状态发生变革,此时该文件是一个Staged状态,可以被提交到当地仓库。
当工作区内有许多个文件,我们可以利用 git add . 来提交全部的文件到暂存区
也可以利用 git add *.txt 如许的通配符指令只提交某种范例的文件
这时我们就可以执行git commit -m "提交信息" 来将暂存区的文件提交到当地仓库
git commit只能提交暂存区的文件到当地仓库
用-m参数来指定提交的信息,会被记录到仓库中
假如倒霉用-m,那么git commit命令会进入一个交互式的界面,默认会利用vim来编辑提交信息
5、git reset回退版本
每当我们用git commit提交以后,git会存储全部的提交版本
当我们错误的提交后,需要打消这个操纵(回退到某一个版本),这时我们就可以用 git reset 来回退版本,打消提交
5.1、三种回退方式:
git reset --soft:回退到某一个版本,并且保存工作区和暂存区的全部修改内容
git reset --hard:回退到某一个版本,并且丢弃工作区和暂存区的全部修改内容
git reset --mixed:回退到某一个版本,只保存工作区的修改内容,丢弃暂存区的修改内容
演示:
- echo "第二个文件的内容" > file2.txt //创建第二个文件
- git add . //添加到暂存区
- git commit -m "第二次提交"
- echo "第三个文件的内容" > file3.txt。//创建第三个文件
- git add .
- git commit -m "第三次提交"
- git reflog //查看仓库提交历史记录
复制代码
将demoGit复制三份,进行不同的操纵
5.2、git reset --soft:
用git reset --soft 回退到第二次提交:
退回后提交记录里就没有了第三次提交
此时我们检察工作区的内容:
检察暂存区的内容:
可见工作区和暂存区中都还保存着file3.txt这个文件 ,这时间我们就可以重新修改file3文件的内容并将file3重新提交了。
5.3、git reset --hard :
用git reset --hard 回退到第二次提交:
检察工作区和暂存区:
这两个区域都没有的file3文件,也就是file3不存在了
5.4、git reset --mixed :
用git reset --mixed 回退到第二次提交:
并检察工作区和暂存区,发现工作区存在file3,暂存区没有file3了
6、git diff检察差异
当目录中某个文件被修改,我们可以用该指令检察修改前后的差异
6.1检察工作区、暂存区、当地仓库之间的差异
git diff <id> HEAD :比较工作区和当地仓库之间的差异
git diff --cached : 比较工作区和当地仓库之间的差异
6.2检察不同版本之间的差异
git diff HEAD~ HEAD :比较当前 HEAD(当前分支所指向的最新提交)与它的前一个提交之间的差异。
7、从版本库中删除文件
方法一:
rm file 只删除了工作区的文件,没有删除暂存区的内容
可以利用git add . 告诉告诉已经将哪个文件删除,需要更新暂存区
方法二:
利用git rm命令
同时删除了工作区和暂存区的文件
删除完记得提交 ,如许谁人文件才气从版本库中删除
假如只删除版本库里的文件,而不删除当地文件,可以加上 --cached
三、git 分支
1、什么是git 分支
分支是 Git 中非常告急的一个概念。它答应你从主代码线(通常是master分支,不过如今也有保举利用main分支)分脱离来,进行独立的开发工作,而不会影响主分支的稳固性。比方,当你要开发一个新功能大概修复一个 bug 时,你可以创建一个新的分支来进行这些工作。
2、基本语法
2.1、检察分支
git branch :该命令用于检察当地仓库中的全部分支。当前所在分支会以星号(*)标记出来。
2.2、创建分支
git branch <branch - name> :创建一个新的分支,新分支会从当前所在分支的雷同提交点(commit point)开始。
2.3、切换分支
git checkout <branch - name>:用于切换到指定的分支。在这里所做的任何修改、提交都不会直接影响到master分支。
git checkout -b <branch - name>:创建新的分支并切换到它
2.4、合并分支
git merge <branch - name>:将指定分支合并到当前分支。
留意:
合并冲突:假如在两个分支对同一部门代码进行了不同的修改,合并时就大概会出现冲突。Git 会在文件中标记出冲突的部门,需要手动办理这些冲突。需要我们编辑文件,决定保存哪些代码,删除这些冲突标记后,再进行提交来完成合并。
2.5、删除分支
git branch -d <branch - name>:用于删除已经合并到其他分支的当地分支。
留意:
逼迫删除分支:假如分支还没有合并,利用-d选项会删除失败。假如确实想要删除未合并的分支,可以利用-D选项
3、远程分支
除了当地分支,Git 还支持远程分支。远程分支是存储在远程仓库(如 GitHub、GitLab 等)中的分支。
git branch -r :检察远程仓库中的全部分支
git push <remote - name> <branch - name>:推送当地分支到远程
git pull <remote - name> <branch - name>:拉取远程分支到当地
四、如何利用gitHub大概gitee等远程仓库
以gitee为例 : Gitee - 基于 Git 的代码托管和研发协作平台
注册并登岸账号
在利用 Git 时,我们需要从远程仓库(如 GitHub、GitLab、Gitee 等)拉取(git pull)或推送(git push)代码。假如倒霉用 SSH 公钥,每次进行这些操纵时,都需要输入用户名和密码来进行身份验证。这在频繁操纵时会非常繁琐。
在此之前,我们先配置一下ssh公钥
1、配置SSH公钥
- cd //回到根目录
- cd .ssh. //进入到ssh目录下
- ssh-keygen -t rsa -b 4096 // 生成ssh密钥
复制代码 此时会在ssh目录下生成一个id_rsa的密钥文件
假如是第一次:就回车输入密码
假如不是第一次,输入一个新的文件名(test)后回车
在.ssh目录下 ls -ltr检察文件名
会看到新生成了两个文件,一个test ,一个test.pub
其中test.pub就是公钥文件,复制内容,在gitee中配置公钥
进入gitee设置,找到SSH公钥,把刚才复制的内容粘贴到公钥那一栏中,标题输入恣意的名字
这个时间我们的SSH公钥就配置好了
假如我们想要当访问gitee.com的时间,指定利用SSH下的test密钥,我们需要增长一步配置
1. 查抄SSH配置文件是否存在
起首,检察是否已经存在SSH配置文件(~/.ssh/config),可以通过以下命令在终端中检察:
ls -al ~/.ssh/config
假如文件不存在,你可以利用文本编辑器(比如nano、vim等)创建该文件,比方利用nano创建的命令如下:
nano config创建config文件并配置路径
nano ~/.ssh/config
2. 在SSH配置文件中添加配置内容
在打开的~/.ssh/config文件(假如是新建则直接开始编辑内容)中,添加如下雷同的配置信息,来指定针对Gitee相关域名利用对应的SSH私钥(与你配置到Gitee上公钥对应的私钥):
Host gitee.com HostName gitee.com IdentityFile ~/.ssh/your_private_key_file
这里的your_private_key_file需要更换成你现实的SSH私钥文件名(比如id_rsa等,假如你在生成密钥对的时间没有指定特殊文件名,默认就是id_rsa,对应的公钥就是id_rsa.pub)。
配置完成后,保存并关闭文件(在nano编辑器中按Ctrl + X,然后按Y确认保存,再按回车确认文件名即可退出)。
3. 测试配置是否生效
可以在终端中尝试通过SSH连接Gitee来测试配置是否生效,执行如下命令:
ssh -T git@gitee.com
假如看到雷同如下提示信息,就说明配置成功了:
Hi [你的Gitee用户名]! You've successfully authenticated, but Gitee.com does not provide shell access.
通过以上设置后,后续你在操纵Gitee项目(比如克隆、推送、拉取等利用Git基于SSH协议的操纵)时,就会默认利用你配置好的SSH密钥对进行认证交互了。
标题:假如配置好了SSH。git push的时间扔提示输入用户名和密码:
原因一:远程仓库 URL 利用的是 HTTPS 协议而非 SSH 协议
- **解释**: 即使你在当地配置了 SSH 密钥,假如远程仓库在你克隆大概添加远程仓库时设置的是基于 HTTPS 的 URL(形如 https://gitee.com/your_username/your_repository.git),那么 git 在进行推送等操纵时,会按照 HTTPS 方式去验证,自然就会要求输入用户名和密码。而 SSH 协议对应的 URL 应该是形如 git@gitee.com:your_username/your_repository.git 的格式。
- **办理办法**:
origin https://gitee.com/your_username/your_repository.git (fetch) origin https://gitee.com/your_username/your_repository.git (push)
2. 假如看到地址是 `https` 开头的,就需要修改为 `git` 开头的 SSH 协议地址。可以利用以下命令来修改远程仓库地址(假设远程仓库别名是 `origin`,假如不是 `origin` 请更换成现实的别名):
git remote set-url origin git@gitee.com:your_username/your_repository.git
修改完成后,再次执行 git remote -v 确认远程仓库地址已经变成了 SSH 协议对应的正确格式。
2、连接当地仓库与远程仓库
我们在gitee创建一个新的仓库后,会出现以下界面
我们需要配置git ,打开终端,开始配置你的用户名和邮箱
- git config --global user.name "petrel"
- git config --global user.email "14012394+zhao-hai-yan@user.noreply.gitee.com"
复制代码 保存用户名和邮箱
- git config --global credential.helper store
复制代码 检察git配置信息,查验是否配置 成功
- git config --global --list
复制代码 git push
将当地仓库上传到远程仓库
在我们已经创建好当地仓库的情况下
- git remote add <远程仓库别名> <远程仓库地址>
- git push -u <远程仓库别名> <分支名>
复制代码 git pull
从远程仓库(gitee、gitHub)中将项目文件拉取到当地
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |