Git基础教程

这篇博客详细介绍了Git的基础操作,包括创建版本库、文件提交、分支管理、版本回推、文件修改与删除,以及冲突解决。从创建仓库到分支的创建、合并、推送,再到解决合并冲突,提供了一整套Git操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Git基础教程

一.创建版本库

1.版本库又名仓库,英文名repository,简单的理解为一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”
2.创建方法:例如我的D盘->www目录下建立一个testgit版本库

在这里插入图片描述

3.之后创建的文件需注意要放在testgit1目录下

方法总结:
a) 1. 输入 cd kkk: (表示进入你的kkk磁盘)
b) 2. 输入 cd hhh (hhh表示上面磁盘下的某个文件夹名称)
c) 3. 输入 mkdir testgit (表示在上面的“hhh”文件夹下再创建一个叫做“testgit”的文件夹)
d) 4. 输入pwd (查看当前路径)
e) 5. 输入 git init (表示对仓库进行初始化);


二.Git文件提交(输入git gui进入图形界面)

书写并提交文件:我们前面说过使用Git提交文件到版本库有两步:
第一步:
是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。
第二步:
使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。<br><br>
具体步骤:
a)	创建一个文件,写完内容后需要放入前面的.git同目录下
b)	输入git add 文件名
c)	输入 git commit -m “对该文件进行说明”
举例:(注意先初始化本地仓库

在这里插入图片描述
1.创建一个叫做demo.txt的文件,放置在testgit的目录下(.git同目录下)
2.在命令行输入git add demo.txt
3.在命令行再输入git commit -m “添加数据”(注意,""内是对该文件的一个说明)
4.可以使用cat demo.txt对该文件内容进行查看

其他操作总结:

1.输入 git log 查看之前提交时书写的相关信息
在这里插入图片描述
2.在工作区对文件进行修改后,可以通过输入git status会进行提示哪个文件修改过。(我在外部将demo.txt文件内容添加了22222数据)
在这里插入图片描述

3.查看文件内的信息 cat 文件名
在这里插入图片描述
4.查看修改了哪些信息:git diff 文件名称

5.查看历史纪录:git log –pretty=oneline (直接显示对每次修改的信息)

三.Git创建分支,推分支

分支:可以为要发布的代码保留一份拷贝
创建方式:
1.git branch 分支name
2.git branch RB_1.0 master  (master branch是主分支,git上的默认分支,RB_1.0是一个新分支名称,RB代表发布分支)
删除分支:
git branch -d name
分支重名:
git branch -m 原分支名称 新分支名称
推分支:
推送分支就是把该分支上所有本地提交到远程库中,推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:使用命令 git push origin master
这里需要先知道远程仓库,在了解之前,先注册github账号,由于你的本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要一点设置:

1.创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果有的话,直接跳过此如下命令,如果没有的话,打开命令行,输入如下命令:ssh-keygen -t rsa –C “youremail@example.com”, 由于我本地此前运行过一次,所以本地有,如下所示:
在这里插入图片描述
2.登录github,打开” settings”中的SSH Keys页面,然后点击“Add SSH Key”,填上任意title,在Key文本框里黏贴id_rsa.pub文件的内容。点击 Add Key,你就应该可以看到已经添加的key。
在这里插入图片描述
3.我们在本地创建了一个Git仓库后,又想在github创建一个Git仓库,并且希望这两个仓库进行远程同步,这样github的仓库可以作为备份,又可以其他人通过该仓库来协作。
首先,登录github上,然后在右上角找到“new repository”,如下:
在这里插入图片描述

在Repository name填入testgit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库。
目前,在GitHub上的这个testgit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
现在,我们根据GitHub的提示,在本地的testgit仓库下运行命令:(在命令行)
git remote add origin https://github.com/AllForward/testgit.git
之后便需要使用推分支的方法,在命令行处输入git push -u origin master。由于远程库是空的,所以第一次推送master分支时需要加上-u参数,推送后即可在远程库看到和本地库一样的文件。
如今已经可以把文件推送出去了,那我现在再对本地的文件内容进行一个修改。如下所示:
远程仓库的demo.txt数据为:
在这里插入图片描述
本地仓库的demo.txt文件内容更改为:
在这里插入图片描述

将修改后的文件提交后,再在命令行输入git push origin master
之后在github上便可以看出文件的内容发生了变化

四.Git分支合并

创建分支并直接定位至该分支的方法:
git checkout -b 分支名称 父分支名称   (创建并检出该分支)
分支定位:
git checkout 分支名称    (检出分支)

合并分支:
1.直接合并:将一条分支的全部历史提交合并到另一条分支上
方法:git merge 文件名(说明:对于没有合并的分支上的信息,主分支无法获取,合并后即可获取),
	合并后可删除分支git branch -d name
2.压合合并:将一条分支上的所有历史提交压合成一个提交,提交到另一条分支上;
采用方法:git merge –squash 文件名,之后再git commit -m “”进行提交
3.拣选合并:分之间只合并一个提交
方法:a).先确定好主分支
	 b).git cherry-pick 提交名称
     c).再使用git commit进行提交

五.版本回推:

恢复原来的版本git reset --hard HEAD(恢复到上上版本只需再加一个)
在这里插入图片描述如回退后想恢复之前的版本,则可以使用git reflog先查看要恢复的版本号,之后再用git reset --hard 版本号进行恢复
在这里插入图片描述(如图第三行开始的黄色处即为版本号)

六.修改和删除文件操作:

1.修改文件操作:
git checkout -- 文件名  (把文件在工作区做的修改全部撤销)

使用该方法有两种情况:

  1. 文件自动修改后,还没有放到暂存区,使用撤销修改就回到和版本库一模一样的状态。
  2. 另外一种是文件已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。
2.删除文件操作:
方法:
rm 文件名   (删除文件之后可以选择彻底删除文件或者恢复原来版本)
若想恢复原来版本
输入git checkout -- 文件名
若是想彻底删除
使用commit删除即可

七.冲突解决等指令

1、git冲突的场景
情景一:多个分支代码合并到一个分支时;(当将分支上的文件内容进行修改并使用git add以及git commit提交后,再在主分支上对该文件进行修改并提交,之后将主分支和次分支进行合并就会出现冲突。)

情景二:多个分支向同一个远端分支推送代码时;(多个人对同一个仓库中的文件pull下来后对文件的同一个位置进行修改,其中一个人提交后,另一个人再提交便会出现提交冲突)

此时使用git status指令会出现下面的情形:
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中<<<HEAD是指主分支修改的内容,>>>>>次分支名称 是指次分支上修改的内容
对第一种情形可以将文件内容修改成和主分支一样,之后即可进行合并,之后可以查看分支的合并情况 git log
对第二种情形再次输入git pull origin master(或其他分支名),删除文件中的<<<<<<<,=======,>>>>>>>,<<<HEAD,保留自己想要的代码,之后在进行提交本地提交,之后再进行push操作进行上传即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值