git安装与使用

1、简介

1.1、为什么要使用git

git简单来说就是一款代码版本控制系统。通过git,我们可以进行多人开发项目,将每个人开发的功能合并成一个完整项目,同时在开发过程中可以记忆并保存每次的项目更改,可以轻易的撤销更改及保存不同的功能性代码。

git优势:
离线工作,分布式系统不依赖中央服务器,每个人的本地副本都相当于一个备份
可靠性高,除了每个人的电脑都有一份备份外,git作为版本控制系统,可以自如的撤销错误更改,保存所有历史记录
文件对比,git的每次提交都是包含了更改的,这样你可以知道你在哪一版本做了什么修改,每次的提交相当于做了一次快照,git会自动差分出文件修改位置。
协同合作,当两个人对同一个代码块做修改时,git在同步或合并时会指出冲突,只有解决了冲突才能提交,并且git将记录每个人的提交历史,有效防止代码管理混乱。

1.2、代码托管平台

什么是代码托管?简单来说就是一个代码云仓库,你可以将你或团队的代码放在云仓库里,随时随地拉取或推送,查看分支和代码审查。
github:国外代码托管平台,上面有许多优秀的开源项目,可将其作为云端仓库来用。
gitee: 码云平台,国内代码托管平台,支持一键将github仓库复制到gitee,国内使用较多。

1.3、相关概念

git基本概念:
工作区 指在本地电脑中能看到的文件,本地所有改动在此进行,改动完成后添加到暂存区;
暂存区 放在.git目录下的index索引文件,只有把工作区所有改动添加到暂存区后才能提交到版本库;
版本库 就是.git文件夹,存放所有版本信息,git init时会生成。
工作区有任何改动都可以通过命令git status获知,改动后通过添加上传两步将其提交到版本库。后续可以通过版本号,快速的恢复被更改的文件。
在这里插入图片描述

2、准备阶段

git官网下载地址
git菜鸟教程

2.1、git安装步骤

1、首先在官网选择需要的客户端安装,我的电脑是windows11,64bit,按下面选择。win11和win10一样,win7如果是32bit的记得选下面的32位的;如果下载过慢可以复制链接到迅雷下载。
在这里插入图片描述

2、同意软件许可,点击next
在这里插入图片描述

3、改路径,自定义安装路径,c盘不大的建议改在别的盘,记得要用英文路径。
在这里插入图片描述

4、红框默认是需要勾选的,绿框选择性勾选,第一个绿框表示是否需要在桌面创建快捷图标,第二个表示是否检测更新。接下来的两步可以Next,安装进入如下界面:
在这里插入图片描述

5、这是选择设置新存储库的初始分支,默认master就行,当然如果你以后要使用GitHub做远程同步的话建议选择第二个(因为国外人权运动,GitHub里的master涉嫌歧视不让用了)。
在这里插入图片描述

6、选第二个,添加系统路径,方便别的程序找到它。
在这里插入图片描述

7、剩下的几项按默认可以一路Next下去,不再赘述。
安装完成图如下:
在这里插入图片描述

8、鼠标右键有Git GUI Here等选项,表示安装成功
在这里插入图片描述
9、用户配置
安装后新建一个空文件夹,鼠标右键选择 Git Bash Here进入Linux命令行模式

接下来输入如下命令进行一些配置:
一条一条输入,配置用户名和邮箱

$ git config --global user.name "runoob"         #自定义名称
$ git config --global user.email test@runoob.com #自定义邮箱,建议与github/gitee保持一致

3、创建本地仓库

git操作有许多指令,简单使用的话只需要记住以下几个指令就可以了,当然如果不想费劲记指令的话,也可以使用git自带的图形界面程序:Git GUI;或者下载小乌龟:小乌龟下载链接小乌龟中文包

3.1、创建仓库

在需要git的本地目录下右键鼠标,选择git Bash Here
之后在命令行输入:

git init

该命令执行成功后会在当前目录生成.git文件夹,作用是初始化仓库

3.2、添加文件到缓存区

添加测试文件到git缓存区,此命令也适用于文件夹

git add 文件名

在这里插入图片描述

查看文件状态

git status

在这里插入图片描述
红色表示有更改未提交到缓存区,绿色表示提交到缓存区,但未提交到版本库

提交到版本库

git commit -m '自定义版本名称'

对于不是新建的文件可以直接用 git commit -am ‘name’ 提交到版本库

提交修改到最近一次版本

git commit --amend

3.3、提交记录与版本回退

查看提交记录详细日志,按q退出

git log

查看简洁信息及版本名称(常用)

git log --oneline

在这里插入图片描述
左边黄色字符串就是版本号,右边是自己定义的备注,蓝色箭头指向当前工作区使用的版本节点,回退时需要版本号。

回退命令:

$ git reset HEAD^            # 回退所有内容到上一个版本  
$ git reset HEAD^ test.txt   # 回退 test.txt文件的版本到上一个版本  
$ git  reset  052e           # 回退到指定版本

HEAD^ 后面可以跟数字,为2时回退到上上版本,依次类推

3.4、git分支创建与操作

git 分支操作类似于创建了一个目录副本,新创建的分支会包含原有的master目录结构。每当切换分支时,本地目录也会同时切换,比如在新分支下新建一个文件test.txt并添加到git,那么切换分支后test.txt将消失。在新分支内新建或删除文件一定要加上git,否则会直接更改目录结构。

分支查询:

git branch

分支创建语句:
创建分支时一定要查看暂存区是否有提交:git status

git branch branchname

或者创建并转到新分支

 git checkout -b branchname

branchname是自定义分支名

分支合并:
合并前需要先提交分支内容
然后要切换回主支:git checkout 主支,然后使用下面指令合并

git merge branchname

分支合并会将被合并分支新建或删除的文件及更改更新到主支
合并完成后可以使用git log --graph查看分支图谱

分支删除:

git branch -d branchname

分支冲突:
当在两个分支中对同一个文件做不同修改并提交时,在合并分支后会出现分支冲突,打开文件可以看到冲突内容
此时需要手动修改,然后git add

文件恢复:
如果发现分支误删除了某一文件,可以使用

git checkout fileName

4、远程仓库配置

github与本地仓库之间传输数据使用SSH加密通信,需要配置验证信息,即公钥和私钥。
gitee与github一样,需要设置公钥和私钥,并绑定到本地git。

由于我最开始使用的github,后来又用到gitee,所以下面介绍如何将这两个平台一起配置完成。如果只使用其中一个平台的,请自行忽略另一个平台的配置

4.1、准备工作

完成上面的git安装及相关网站的注册,按照提示在网站上创建一个新的仓库,gitee和github根据自己需要注册哪一个,这里我是两个都使用,所以都注册了。
gitee官网
github官网

4.2、git全局设置

查看git全局配置
git config --global -l

删除全局配置
git config --global --edit

其他参考命令:
添加git全局范围的用户名和邮箱:
git config --global user.email abc@163.com
git config --global user.name abc

4.3、创建ssh密钥

在桌面上右键 Git Bash Here 进入git命令行模式
依次输入以下命令:
cd
cd ./.ssh

就会进入.ssh文件夹 或者直接在C:\Users\用户名\.ssh 下直接 git bash here
之后创建密钥,输入以下命令:
gitee 创建 ssh keys:
ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitee -C "自己的邮箱@qq.com"

github 创建 ssh keys:
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "自己的邮箱@qq.com"

完成后会生成以下文件, 文件后缀为.pub的为公钥,一会要用。
在这里插入图片描述

4.4、关联密钥

ssh-agent bash
ssh-add ~/.ssh/id_rsa.github
ssh-add ~/.ssh/id_rsa.gitee

创建config
touch ~/.ssh/config 

在.ssh文件中创建完config文件后用记事本打开
添加如下内容后保存退出:

#Default gitHub user Self
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa.github

# gitee
Host gitee.com
    Port 22
    HostName gitee.com
    User git
    IdentityFile ~/.ssh/id_rsa.gitee

打开gitee或者github网站,找到如下标注位置,用记事本打开上面生成的公钥,将内容复制到图片标注为2的位置,完成后在3处随便起一个名字点确定(用哪个网站就粘贴哪个公钥)。
在这里插入图片描述

4.5、验证密钥

输入以下代码验证配置是否成功:

ssh -T git@gitee.com
ssh -T git@github.com

在这里插入图片描述

5、远程库与本地协作

相关命令:

#克隆命令:
git clone url
#同步命令:
git pull
#上传命令:
git push

5.1、tortoisegit操作

这部分个人推荐使用tortoisegit软件,即小乌龟
如下填写名称和邮箱,填写远程库url
在这里插入图片描述
在这里插入图片描述
URL和推送URL填一样的
在这里插入图片描述
远程库url位置:
在这里插入图片描述

5.2、克隆

在一个新的本地文件夹下克隆远程库文件:
在这里插入图片描述
输入URL地址和要克隆的本地目录开始克隆
在这里插入图片描述
** 注意:如何要克隆某一分支,需要将上图中的红圈选中,输入分支名 **

5.3、克隆成功

在这里插入图片描述

5.4、同步/推送

在这里插入图片描述
在这里插入图片描述

6、问题与补充

git使用中遇到的错误:
1、error: src refspec xxx does not match any / error: failed to push some refs to …
现在的github工程默认为main,而git本地默认为master
解决方法:
统一远程和本地仓库名

 git branch -m oldBranchName newBranchName

在这里插入图片描述
2、Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

fatal:无法访问远程仓库
请确认有正确的权限和远程仓库存在

可能原因:
1、SSH密钥没有配置,或配置错误,查看命令记录或再配置一遍,可能是邮箱错误
2、未关联远程仓库或关联错误,
git remote remove origin #删除关联
git remote add origin git@github.com:XXX/XXX.github.io.git #添加关联
git push origin master #上传
3、main和master问题,转上问题1
4、本地未提交README自述文件,github上添加了自述文件,本地没有添加

解决方法:
touch,add, commit添加文件,然后在push
或者将远程clone到本地再push

还有一种错误我忘了,好像是提示密钥问题,但是配置密钥会显示已有密钥连接
解决方法是在C:\Users.ssh下新建一个config文件,在文件中写入配置信息如下
Host github.com
User xxxxxxxxxxxx@qq.com
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
在这里插入图片描述
补充:
.gitignore忽略文件:
项目中常常会有一些自动生成的日志之类的文件不需要每次都保存版本,于是我们需要在新建git仓库后在本地新建一个.gitignore文件,里面写明需要忽略的文件或文件夹。
格式规范:
以#开头的是注释
以/结尾的是目录
以/开头防止递归
以!开头表示取反
可以使用glob模式进行文件和文件夹的匹配(glob指简化的正则表达式)

# 忽略 index.css 这个文件
index.css
# 忽略 test 目录下所有的文件
test/
  • 25
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值