git 基本命令
git 基本命令
记录一下git 学习常用命令,以防用时遗忘。
安装后简单配置
git --global uname 'name'
git --global email 'example@icloud.com'
git add demo
git commit -m 'add demo'
git log --oneline
git log --pretty=oneline
git reset --hard HEAD^ 上一个版本
HEAD^^
HEAD~100
Git提供了一个命令git reflog用来记录你的每一次命令
.git 文件目录
COMMIT_EDITMSG
config 当前 git 的配置文件
description (仓库的描述信息文件)
HEAD (指向当前所在的分支),例如当前在 develop 分支,实际指向地址是 refs/heads/develop
hooks [文件夹]
index
info [文件夹]
logs [文件夹]
objects [文件夹] (存放所有的 git 对象,对象哈希值前 2 位为文件夹名称,后 38 位为对象文件名,
可通过 git cat-file -p 命令,拼接文件夹名称+文件名查看)
ORIG_HEAD
refs [文件夹]
• heads (存放当前项目的所有分支)
• tags (存放的当前项目的所有标签,又叫做里程碑)
cat 命令, 功能:用来显示文件。 例如 cat text.md 显示 text.md 文件的内容
ls -al 命令, 表示列出当前目录下的所有文件(包括隐藏文件)
git cat-file -t 命令 , 查看 git 对象的类型
git cat-file -p 命令, 查看 git 对象的内容
git cat-file -s 命令, 查看 git 对象的大小
git checkout commitId:会出现分离头指针的情况,这种情况下比较危险,
因为这个时候你提交的代码没有和分支对应起来,当切换到其他分支的时候(比如master分支),容易丢失代码;
但是分离头指针也有它的应用场景,就是在自己做尝试或者测试的时候可以分离头指针,当尝试完毕没有用的时候可以随时丢弃,
但是如果觉得尝试有用,那么可以新建一个分支,使用 git branch <新分支的名称> commitId
^ ~ 都是父节点,区别是跟随数字时候,^2 是第二个父节点,而~2是父节点的父节点
删除分支
git branch -d commitid / 'message'
1、git fetch 和 git pull 的区别 在执行 git pull 后,代码会自动 merge 到本地的分支中,而 git fetch 会忽略掉这个 merge 操作,因此简单来说:
git pull = git fetch + git merge
2、git pull 和 git pull --rebase 区别 git pull 命令默认包含了一个 --merge 参数,因此二者的区别其实就是 merge 和 rebase 的区别。
merge 会创建一个新的 commit,如果合并时遇到了冲突,需要解决冲突后重新 commit。
Merge
Rebase

rebase 会将两个分支进行合并,同时合并之前的 commit 历史。如果出现冲突,解决冲突后执行以下命令即可:
git add
git rebase --continue