概念
分支
每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,master分支指向这条时间线.这块概念还不明确,目前的理解就是git里有一个时间线,这条线就是一个个的快照串起来的线,还可以有很多分支,每个分支实际上就是一个指针,默认的使用的是master指针,移动的也是这条指针,当创建并使用其他分支时,就是master指针还指向原来的快照点上,保持不动,然后移动其他分支指针指向最新的快照,仅此而已,因此删除分支实际上就是删除快照和指针,合并分支就是移动指针,新建分支就是新建指针.
工作区,暂存区,head指针
git主要负责管理的就是这三个区,暂存区又叫statge或index,其中暂存区的版本是执行git commit后将要生成的快照的版本.head指针就是一个指针,指向当前分支,当前分支实际上也是个指针,指向自己所管理一段时间线的某个快照点,
因此head指针指向当前分支所指向的某个版本.工作区实际上就是一个即时修改的所有文件,即用ide可以查看和修改的文件,按照官方文档的描述类似一个沙盘.
git的正常工作流程
1.git init让某个目录成为一个git管理的项目
2.修改完成后,git add . 将当前目录中的所有内容添加至工作区,此时当前目录中所有文件的工作区版本和缓存区的版本完全一致.
3.再次修改并添加到暂存后,决定提交当前快照到分支中,使用git commit.
4.此时执行gitstatus,发现提示working tree clean, 此时三个区的版本完全一致.
merge和rebase的区别
Git - merge和rebase的区别 - 李若盛开 - 博客园
常用命令
更新.gitignore后立即生效,需要清理暂存中的缓存
git rm -r --cached
设置git中的用户信息,不加--global仅设置仓库级
git config --global user.name
git config --global user.email
管理远程仓库
git remote -v
# origin2为远程仓库的别名
git remote add origin2 https://github.com/user/repo2.git
git remote rm origin2
# 拉取和提交时指定远程仓库
git push origin2 master
git pull origin2 master
回滚到某个提交
git reflog
git reset ${commidId} --hard
删除分支
git branch -d feature-branch
git push origin --delete feature-branch
标签:git,快照,--,常见,命令,master,指针,分支
From: https://www.cnblogs.com/lshao/p/10345090.html