Git 使用教程
一、介绍与安装
Git 就像是一个超级智能的项目历史记录管理员,专门负责管理你写的代码、设计的文档或者其他类型的文件。想象一下,你在写一篇很长的小说,随着时间推移,你不断地修改内容、添加情节、删除段落。如果没有一个好的管理方式,你可能会忘记之前的版本是什么样的,或者在修改过程中不小心弄丢了重要的内容。Git 就能帮你解决这些问题。
它会记录下你对文件所做的每一次修改,就像给每次修改拍了一张快照。你可以随时回到过去的某个版本,看看当时的文件内容是什么样的。而且,当你和其他人一起合作完成一个项目时,Git 可以帮助你们协调各自的修改,避免冲突,确保每个人的工作都能顺利整合到一起;这里对git就有了一个初步认识。
1、功能应用场景
应用场景,大致可以分为个人本地化应用、以及线上管理单人/多人合作的场景;
1.1个人本地化
当你从事某项任务编辑文档,或者代码任务时,随着工作的开展,你需要对整体的把控,或者,解决完问题,需要复盘,或者用来记录你某个解决问题修改。此处就需要本地的版本管理。
1.2线上单人/多人管理合作
线上单人管理:比如你在多个电脑直接进行同一个任务代码,文档编辑,需要同步,或者某个本地项目需要远程更新到另一台联网PC上。
线上的多人协作:在一个大型软件项目中,通常会有多个开发人员同时负责不同的模块。每个开发人员可以在自己的本地分支上进行开发,完成后需要同步各自进展,并且集中发布。
2、常见线上仓库网站以及线上仓库创建
常见线上仓库:github、gitlab、gitee、gitcode、等(后两个为国内的,相交前两个访问较为稳定)
这里用gitee举例:
2.1、注册账号(忽略)
2.2、创建线上仓库
默认推荐使用http协议,只需要验证账号密码,即可。
3、软件安装本地部署
软件下载地址:Git - Downloadshttps://git-scm.com/downloads
下载完成后无脑next,一路安装过去,若需要指定安装路径,则指定一下,若不需要则跳过。
安装成功后,鼠标右键空白位置会出现如下菜单:Git GUI Here / Git Bash Here
二、命令介绍
根据前一段的介绍,远端仓库已经建立完毕,下面介绍一些常见命令这里,使用git时只需要鼠标右键菜单,点击“Git Bash Here”, 即可出现如下控制台界面:
根据设置执行下列配置,这里根据自己“useName” “userEmail”进行修改配置
git config --global user.name "useName"
git config --global user.email "userEmail.com"
然后创建本地仓库目录:
此时发现实际目录创建完毕:
1、git 基础命令
1.1、init/clone/fork
init :为初始化本地仓库:创建成功!
clone:将远端仓库克隆到本地,这里可以参考另外一篇文章:git克隆远端仓库代码_ssh克隆gitlab远程仓库代码-CSDN博客
fork:可以代表分叉、克隆 出一个(仓库的)新拷贝;
1.2、add/commit
add: 添加文件到本地仓库;
commit:创建本地提交记录;
本地对于已经加入到仓库种的文件修改后,可以合并成一个语句提交 “git commit -a -m "描述提交内容"”
1.3、checkout
chekout: Git 中用于切换分支、恢复文件和创建新分支的工具。例如下切换并创建分支 创建新分支“study”,并切换到新分支
1.4、status
status:查看当前本地分支状态;例如下:会发现本地修改了。
1.5、branch
branch: 查看分支、新建分支但不切换、删除分支等操作
1.6、remote add
remote add:将本地仓库与远程仓库绑定;
1.7、pull/push
pull:拉去远端仓库到本地;
push:将本地仓库同步到远端;
代码提交流程:add ->commit->pull->push
1.8、merge/rebase
merge: 将目标分支,合并到当前分支;
rebase:用于重新应用一个分支上的提交到另一个分支,将两个分支节点集结成一条分支脉络;它是 git merge 命令的替代方案,但与合并相比,它提供了一个更干净的项目历史。Rebase 通过在特定的基础提交上重新应用更改,使得提交历史成为一条直线,这使得理解和审查历史更加容易。
在多人合作时,merge/rebase,都会存在冲突异常,这里就不详细举例了,当出现冲突时,要解决对比,当前分支,与你要即将合并分支的差异,决定哪些是要保留,修改确定好了,再次进行本地提交,从而完成冲突解决。
1.9、log\diff\reflog
log:查看提交日志:
diff:查看当前仓库分支种修改了什么;
reflog:它用于记录本地仓库中 HEAD 指针的移动历史,这包括了 commit, rebase, merge 等操作。这个命令对于恢复错误的操作至关重要,因为它允许开发者查看并回退到之前的任何一个提交状态,即使这些状态在 git log 中已经不可见。
1.10、reset
reset:当前分支的版本回退,可以指定到某次具体提交;(注意:不要轻易版本回退)
2、.gitignore文件
该文件需要加入到版本控制中;
忽略文件,文件夹等
如下:
这里忽略了后缀为obj的文件