git-学习笔记

git-分布式版本控制系统

下载安装后,进入自己的项目文件目录里,右键点击Git Bush Here。

 一、准备:

1、输入用户名和邮箱

命令1:git config --global user.name +"用户名"
命令2:git config --global user.email +邮箱账号

例1:git config --global user.name "zs"
例2:git config --global user.email 123456789@qq.com

补充:
(--global:全局配置,对所有仓库有效)
(--system:系统配置,对所有用户生效)
(--local:本地配置,只对本地仓库有效)


2、保存配置
命令:git config --global credential.helper store 


3、查看git配置信息
命令:git config --global --list 


二、创建仓库

进入自己的项目文件目录下

1、直接初始化
命令:git init或者git init +目录名
例:git init 或 git init my-repo
(init后面可以指定目录的名称,指定后会在当前目录下创建.git文件)


2、克隆远程仓库
命令:git clone +远程仓库的地址;
例:git clone https://...


三、将文件添加到仓库里

1、查看当前仓库的状态
命令:git status


2、将文件添加到暂存区:
(1)命令:git add +文件名
例:git add file1.txt
(2)命令:git add .
表示将目录里的所有文件都提交到暂存区,add后面记得加空格再加英文格式的点


3、将文件从暂存区提交到仓库
命令:git commit -m "提交备注"
例:git commit -m "第一次提交"


4、查看提交记录
查看提交记录命令:git log
查看简洁的提交记录命令:git log --oneline 


四、git reset:撤销之前提交的内容,或者回退版本。

1、命令:git reset --soft +版本号(版本号获取方式如下图4.1,即使用三、4的命令查看)
例:git reset --soft 2a35358

图4.1 

2、撤销文件后,工作区暂存区都删除文件
命令:git reset --hard HEAD^


3、撤销文件后,工作区保留,暂存区删除文件
命令:git reset HEAD^

五、若不小心误操作,撤销了想要的文件,可用git reset --hard +版本号找回

1、查看操作记录
命令:git reflog


2、查看误操作的版本号(见4.1图)


3、找回误操作的版本
命令:git reset --hard +版本号
例:git reset --hard 2a35358

六、git diff 可查看工作区、版本库、本地仓库之间的差异或者不同版本之间的差异

1、查看修改前后的内容,比较暂存区和工作区的差异,结果见图6.1
命令:git diff

图6.1

2、比较工作区和版本库的差异
命令:git diff HEAD


3、比较暂存区和版本库的差异
命令:git diff --cached


4、比较两个版本之间的差异
4.1、通过版本号(见四(1)图)直接比较两个版本:
命令:git diff +版本号1 +版本号2
例:git diff 2a35358 45f90f4


4.2、比较HEAD文件和上一次提交版本的差异
命令:git diff HEAD~ HEAD或者git diff HEAD^ HEAD


4.3、比较HEAD文件和某一个版本文件
命令:git diff +版本号 HEAD
例:git diff 2a35358 HEAD


或者命令:git diff HEAD~数字 HEAD
例:git diff HEAD~3 HEAD
(表示比较HEAD文件和提交之前的第三个版本,数字为几比较的就是提交前的第几个版本。)


4.4、只比较提交版本中某一文件的差异
例:git diff HEAD~3 HEAD file3.txt
(表示只查看file3的差异内容,在HEAD文件和提交前的第三个版本中比较。)


4.5、 查看两个分支间的差异(前提已有分支)
git diff 分支名1 分支名2
例:git diff dev main


七、从版本库中删除文件

1、rm删除工作区的文件后,还需用“git add .” 的命令再更新一次暂存区的状态,否则暂存区里还会存在删除的文件。
命令:rm +文件名.后缀
例:rm file2.txt


2.删除工作区和暂存区的文件
命令:git rm +文件名.后缀名
例: git rm file1.txt


3.删除后记得提交,不然版本库里还是存在删除的文件。

八、gitignore忽略指定文件,不提交到版本库中

1、命令:echo 文件名.后缀名 > .gitignore
例:echo 1.log > .gitignore

九、添加一个远程仓库

1、命令:git remote add origin +url
例:git remote origin git@github.com:geekhall-zhangsan//firstrepo.git
(origin是Git给克隆的仓库服务器的默认名字)

十、创建分支

1、命令:git branch +分支名
例:git branch main

十一、切换分支

1、命令:git checkout +分支名或者git switch +分支名
例1:git checkout dev
例2(更推荐):git switch main

十二、将本地仓库的修改推送到远程仓库

1、命令:git push -u +远程仓库名 +分支名
举例:git push -u origin main
(意思是将main分支与远程的origin仓库的main分支关联起来)

十三、将远程仓库的修改拉取到本地

1、命令:git pull +远程仓库名 +分支名
例:git pull origin main

十四、合并分支

1、命令:git merge +将要被合并的分支名称
例:git merge dev
(当前所在的分支就是合并后的目标分支,所以需要先切换到目标分支再输入命令)


2、解决合并冲突
若两个分支修改了同一个文件的同一行代码,那么git无法自动合并分支。
解决方案:手动修改冲突文件,具体操作如下:
git merge dev命令执行时遇上合并冲突时,会报CONFLICT,可使用git status查看冲突列表,也可以使用git diff查看冲突的具体内容(等号上下的内容分别是两个分支的修改内容),这时需要(使用vi+文件名.后缀名)手动编辑这个文件,把左箭头、等号、右箭头都删掉,将第二行的内容合并为一行,即将两个分支的修改内容合并到一起,再提交。


十五、删除分支

1、删除已经完成合并的分支
命令:git branch -d +分支名
例:git branch -d dev


2、删除未完成合并的分支,即强制删除分支
命令:git branch -D +分支名
例:git branch -D dev

十六、将不同分支的内容合并到一起,也可使用rebase(中文叫变基)

记住,使用rebase后,提交记录会变成一条直线,类比移植嫁接,但是在不同的分支下使用会使提交记录的顺序变的不同,举例说明如下:

原分支情况:

图16.1

可在任意分支上执行rebase操作,见下文
1、在main分支上执行git rebase dev
意思是将main分支的共同祖先(例中main:3节点)后面的提交记录移动到目标分支dev的后面,结果见下图16.2

图16.2 

2.在dev上执行git rebase main
dev分支的共同祖先(例中main:3节点)后面的提交记录都会移动到main分支的后面,结果见下图16.3

图16.3 

十七、rebase和merge的区别与如何使用

1、区别
(1)Merge:
A优点:不破坏原分支的提交历史,方便回溯和查看
B缺点:会产生额外的提交节点,分支图较复杂。
(2)Rebase:
A优点:不新增额外的提交历史,形成线性历史,较直观干净。
B缺点:会改变提交历史,改变了当前分支branch out的节点,避免在共享分支使用。

2、如何使用?
(1)只想合并分支,不关注提交历史,且不是共享分支,则使用merge
(2)想提交历史清晰明了,且自己在一个分支上开发,则使用rebase

十八、例图

1、github代码上传例图

十九、其他命令,补充说明:

0、git命令行粘贴快捷键:
命令:Shift+Insert


1、echo用法:创建文件
命令:echo "文件内容">文件名.后缀 
例:echo "first file">file1.txt


2、ls用法:查看目录下的文件
命令:ls


3、cat用法,查看文件内容

命令:cat 文件名.后缀名
例:cat file1.txt


4、查看暂存区的内容命令:
命令:git ls-files


5、在命令行直接修改文件内容
命令:vi +文件名.后缀
例:vi file3.txt
(输入此命令,会进入到vi编辑器模式,输入完成后先按ESC键,再同时按住shift+英文的冒号键(:),再输入wq回车后即可退出)

6、查看本地仓库中的文件命令
命令:ls -ltr

感谢!

参考视频:http:// https://www.bilibili.com/video/BV1HM411377j/?buvid=YD444EDADEA5296D4C6DA1A6CC4D4D24CD57&is_story_h5=false&mid=MvbBGRIe7qvBMK7i00cwnA%3D%3D&p=1&plat_id=116&share_from=ugc&share_medium=iphone&share_plat=ios&share_source=WEIXIN&share_tag=s_i×tamp=1710839008&unique_k=Rn4emHH&up_id=102438649icon-default.png?t=N7T8http:// https://www.bilibili.com/video/BV1HM411377j/?buvid=YD444EDADEA5296D4C6DA1A6CC4D4D24CD57&is_story_h5=false&mid=MvbBGRIe7qvBMK7i00cwnA%3D%3D&p=1&plat_id=116&share_from=ugc&share_medium=iphone&share_plat=ios&share_source=WEIXIN&share_tag=s_i×tamp=1710839008&unique_k=Rn4emHH&up_id=102438649

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值