git命令学习二
使用 gitk命令 来查看git的图形界面
探秘.git目录
HEAD内容表示工作在那个分支
config内容记录和本地仓库相关的信息(用户名和邮箱等)
refs中包含heads和tags目录, heads中记录分支,每个分支的文件中记录当前commit;tags中记录tag信息,每个tag中记录的也是commit
objects 记录blob信息
commit、tree和blob之间的关系
一个commit对应一个tree。这个树代表了当前commit的一个快照。树中包含了当前所有信息当时的一个记录。
blob对应一个文件,但是blob不以文件名进行区分,按文件内容来区分。
分离头指针
在git checkout commit (HEAD不指向任何分支,指向commit)后会产生分离头指针,如果分离头指针后不做分支,切换回原来的分支后,分离头指针提交的东西回被删除掉。。
HEAD 最终指向于commit.
删除分支
git branch -d 分支名
如果删除不掉,使用 -D 的方式
修改commit的message
修改最近一次的:
使用 git commit --amend, 然后对message进行更正,然后保存退出
之前提交的commit:
1. git rebase -i commit 这个commit是指被变commit的父亲,rebase 为变基操作。
2. 执行上述命令后,进入策略编辑,修改对应的命令,保存退出
3. 退出后,会自动进入编辑界面,修改message,保存退出
把连续多个commit整理成1个
1. git rebase -i commit
2. 编辑策略 使用squash, 然后保存
3. 跳出编辑界面,编辑message,然后保存
把几个间隔的commit整理成1个
1. git rebase -i commit
2. 调整commit的位置,将需要整理的commit放在一起,编辑策略 使用squash
3. 编辑message