Git教程(含泪总结)
作者:互联网
Git含泪总结
一、了解Git的基本流程
1. Git工作基本流程
二、Git安装与配置
2.1 Git安装步骤
- 官网下载安装
- 点击安装程序,一路next
- 检查是否安装成功,桌面右键查看是否有
git bash here
和git GuI here
2.2 Git基本配置
-
桌面打开
git bash
-
设置用户信息
git config --global user.name"你的注册名"
git config --global user.email “你的邮箱”
2.3 给常用指令设置别名(可选)
有些常用的指令参数非常多,每次都需要输入好多参数,我们可以取别名
-
打开用户目录,创建
.bashrc
文件(有些用户可能不能创建以.
开头的文件)解决办法:在git bash中使用touch指令
touch ~/.bashrc
(~代表的是当前用户的根目录) -
打开
.bashrc
文件,输入以下内容(如果创建了看不见隐藏文件,在上面勾选显示隐藏文件,百度哈)#用于输出git提交日志 alias git-log = 'git log --pretty=oneline --all --graph --abbrev-commit' #用于输出当前所有文件及基本信息 alias ll='ls -al'
-
打开
gitBash
,执行source ~/.bashrc
source ~/.bashrc
2.4 解决GitBash
乱码问题(可选)
- 打开
gitBash
执行下面命令
git config --global core.quotepath false
2.${git_home}/etc/bash.bashrc
文件最后加入下面两行(git_home意思是:git的安装目录)
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
三、掌握Git常用命令
3.1 获取本地仓库
- 任意位置创建目录
- 进入该目录,右键打开
git bash
- 初始化仓库
git init
- 可以看到该目录下有
.git
文件,说明初始化仓库完成
3.2 基础操作指令
- 查看修改状态
git status
- 添加工作区到暂存区(add)
git add .
- 提交暂存区到本地仓库(commit)
git commit -m '提交信息介绍'
- 查看提交日志(log)
git log
3.3 版本回退操作
- 基本语法
git reset --hard commitID
-
案例精析(素材准备)
- 在任意位置创建
test
文件夹,右键打开git bash
执行git init
初始化仓库 - 在
git bash
界面执行touch hello.txt
指令,生成hello.txt文件,或者自己在test文件下右键新建一个
- 在任意位置创建
-
案例精析(指令开始)
-
首先,在以上素材准备完全后,执行以下语句(下面配上效果图哈)
git add . git commit -m '第一次提交' git log
-
-
打开
hello.txt
文件,随便写点东西进去,保存退出,接着二次提交。git add . git commit -m '第二次提交' git log
-
最后,假设hello.txt想回到最初没有内容的状态(也就是回到第一提交之后的样子),执行以下语句
git reset --hard 8ab7db5e8d727670ef1f41d83ed3f50d456da777 //后面那些是第一次提交后的commitID哈,这个直接赋值自己的,不要照抄哟
最后,打开hello.txt文件,发现确实还原到了第一次提交后的状态(就是里面没有写任何东西);先别关git bash
窗口,
情景一:回到第一次之后,你觉得第二次写的东西我还需要,我想回到第二次提交后的样子,怎么办?
-
找到第二次提交后打印出来的日志,找到第二次提交之后的commitID,执行一些语句,
git reset --hard f302cb77a30964b32eed4da954343fca747bdfbd //commtID为第二次的 //执行完发现,确实回来了,hello.txt中有自己当初添加的内容了
情景二:再来,有的小伙伴,觉得
git bash
窗口中执行了太多命令,结果执行了clear
清空了上面的内容或者是关闭了当前命令行窗口,那怎么才能回到第二次提交之后的样子呢?
这样子,就回来呀,是不是觉得很神奇!!
四、分支(重点)
4.1 Git分支的概念
几乎所有的版本控制系统都是以某种形式支持分支,使用分支意味着你可以把你的工作从开发主线上分离开来进行重大bug的修改,开发新功能,以免影响开发主线。
4.2 常见分支命令
-
如何查看分支
git branch
-
新建并切换分支
git checkout -b '新分支'
-
合并分支
git merge '分之名称'
-
删除分支
git branch -d '分支'
4.3 解决合并冲突
当两个分支上对文件的修改可能会存在冲突,例如:同时修改了同一个文件的同一行,这时就需要手动解决冲突
- 处理文件中冲突的地方
- 将解决完冲突的文件加入暂存区(add)
- 提交到仓库(commit)
各分支数据互不影响,切换对应分支,可以查看到对应文件。例如下图:dev-logo分支和master分支上的内容各不相同
但是,往往在实际开发中,开发者有可能处于一个dev-logo分支更改了一个文件,而这个文件刚好也处于master分支上,并且另一个开发者同时也改了master分支上的这个文件的同一个位置。此时,将dev-logo分支合并到master主分支是会发现有冲突
-
上面gif图可以看到dev-logo分支上有hello.txt文件,master分支上也有hello.txt文件;此时切换到dev-logo分支上对hello.txt文件进行修改;然后切换到master分支上对hello.txt分支进行修改。
-
在处于master分支上,执行
git merge dev-logo
合并分支,会发现以下提示[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OD1qHFkl-1639795283523)(C:\Users\Jreey\Desktop\个人文件\博客\merge.png)]
-
打开任意分支上的hello.txt文件,你会发现以下;图表示的是:
HEAD
到中间====
的是当前分支上修改的内容,dev-logo
到中间====
是dev-logo
分支上的内容。
-
打开文件后,根据自己的需要选择要保留的内容,删去除要保留代码之外的所有内容,包括那些git生成的箭头文字等
-
添加到暂存区(add)
特别提醒:
如果是多人开发同一个项目,在合并之前先把master上的东西先拉取一下,也就是
git pull origin master
,为的是解决可能有的冲突,解决完了冲突再将代码提交至远程仓库。
开发中分支使用原则和流程
-
master
分支:主要用于项目上线 -
develop
分支:用于部门开发(该分支下创建新的分支进行开发)
五、配置SSH公钥
git bash
下输入ssh-keygen -t rsa
- 一路回车
- 获取公钥
cat ~/.ssh/id_rsa.pub
- 将
git bash
下返回的公钥复制粘贴到gitee
配置公钥界面 - 验证是否成功
ssh -T git@gitee.com
- 输入yes
- 显示
hi xxx
表示成功
六、远程仓库的使用
-
添加远程仓库
git remote add <远端名字><仓库路径> <远端名字>一般用origin <仓库路径>分为SSH和HTTPS两种
-
查看远程仓库
git remote
-
推送到远程仓库
git push [-f] [--set-upstream] [远端名称[本地分支名]:[远端分支名]]
-
如果远端仓库名和本地分支名相同,则可以只写本地
-
git push origin master
-
-f 表示强制覆盖
-
[–set-upstream]绑定本地仓库和远程仓库对应
git branch --vv //查看仓库对应关系 git branch --set--upstream [远程仓库分支]:[本地仓库分支]
-
-
-
克隆远程仓库
git clone 仓库地址 [别名]
-
从远程仓库抓取和拉取
- 抓取命令:
git fetch [remote name][branch name]
- 拉取命令:
git pull origin master
特别提醒:在推送到远程仓库之前,先
pull
一下远端代码,解决完冲突在推送到远端 - 抓取命令:
七、Git铁令
-
切换分支前先提交本地修改的代码
-
遇到问题千万别删项目文件夹
-
如果是团队协作开发,先拉取远端代码,解决冲突,再合并代码,最终提交代码。
clone 仓库地址 [别名] -
从远程仓库抓取和拉取
- 抓取命令:
git fetch [remote name][branch name]
- 拉取命令:
git pull origin master
特别提醒:在推送到远程仓库之前,先
pull
一下远端代码,解决完冲突在推送到远端 - 抓取命令:
七、Git铁令
- 切换分支前先提交本地修改的代码
- 遇到问题千万别删项目文件夹
- 如果是团队协作开发,先拉取远端代码,解决冲突,再合并代码,最终提交代码。
标签:文件,教程,Git,仓库,含泪,--,git,分支 来源: https://blog.csdn.net/qq_45835014/article/details/122009535