文章目录
git config 配置用户名和邮箱
git config --global user.name "用户名"
用户名间有空格,则需要双引号括起来,这里可以省略
git config --global user.email 邮箱
保存用户名和密码
git config --global credential.helper store
查看Git配置信息
git config --global --list
配置完成
创建一个仓库
git init
查看
Git的工作区域和文件状态
工作区域
文件状态
Git提交
查看仓库状态
git status
查看状态的简略模式 -s
创建第一个文件
echo "这是第一个文件">file1.txt
echo>>追加内容在文件后面
将文件添加至暂存区
git add file1.txt
将文件提交
git commit -m "第一次提交"
-a -m 同时完成添加暂存和提交两个动作
只会提交暂存区里的文件
-m 指定提交信息(若不指定,会进入vim编辑提交信息)
添加所有文件到暂存区
git add *.txt//所有.txt结尾的文件
git add .//.表示当前目录(所有文件)
查看提交记录(每次提交都有唯一的提交ID,作者,邮箱,时间,提示信息)
git log//git log --oneline 查看简洁提交信息
Git撤销
如果误删
git reflog
git reset --hard ID
查看文件差异
git diff //默认比较工作区与暂存区差异
工作区和版本库之间差异
git diff HEAD
暂存区和版本库
git diff --cached
比较2个版本差异(ID : 2次提交版本的ID)
git diff ID ID
HEAD 指向分支的最新提交节点(最新版本)
HEAD~ (或者^)上一个版本
HEAD~2 HEAD之前的2个版本
删除文件
git rm 文件名
rm 会将工作区与暂存区一起删除
若不想删除本地文件(–cached)
删除完,记得再提交下(否则删除的文件在版本库还是存在的)
.gitignore文件
.gitignore 生效需要一个前提
这个文件不能是已经添加到版本库中的文件
git是不会将空的文件夹纳入到版本控制中的
文件夹的格式是以斜线结尾的/
匹配规则
**
**
例子
VScode
分支
Merge与Rebase区别
Merge
优点:不会破环原分支的提交历史,方便回溯和查看。
缺点:会产生额外的提交节点,分支图比较复杂。
Rebase
优点:不会新增额外的提交记录,形成线性历史,比较直观和干净:
缺点:会改变提交历史,改变了当前分支branch out的节点。
避免在共享分支使用。
创建一个新的分支 dev
git branch dev
切换到新的分支
git checkout dev
2.23版本之后
git switch main
将不同分支合并到当前分支中(merge后面是将要被合并的分支)
git merge dev
将当前的dev分支变基到目标main分支上
git rebase main
恢复分支 (ID git log 查看)
git checkout -b dev 提交ID
查看分支图
git log --graph --oneline --decorate --all
命令太长,可使用以下命令用graph代替
alias graph ="git log --graph --oneline --decorate --all"
合并后分支还是会存在的
删除一个已经合并了的分支
git branch -d dev
将仓库回退到某一个时间点
git reset --hard ID
若没有合并 则需要 -D 强制删除
解决合并冲突
手动合并
终止合并
标记版本号
git tag
文章中图片部分非原创,如有侵权,请联系本人删除!!!