Git相关总结
Git基本命令
- git init 初始化当前文件夹为git仓库,目录中会多出.git文件夹,用于存储git的相关内容
.git目录下的相关文件及其作用
ORIG_HEAD为远程仓库的当前引用
文件内容: refs/heads/master
COMMIT_EDITMSG
文件内容:本地最后一次提交的信息记录
HEAD为本地仓库的当前引用
文件内容:4dea39d66543c9a86a0f7753b5c485319ae6f28f 为对应的commitId
index
文件内容:暂存区相关内容
packed-refs
克隆仓库时的引用
config
本仓库的相关配置信息
refs/heads/<branchName>:对应分支的最新commitId
refs/remotes 目录下为远程仓库及远程分支的对应分支commitId(其中也有指向某一分支的HEAD,指向当前远程分支)
refs/tags为标签相关信息,略过
logs/refs
/heads 本地仓库的执行命令记录
/remotes 远程仓库对应的执行命令记录
hooks
存储一些shell脚本,例如可以编写脚本实现commit前检验代码
info/exclude用于排除不受git控制的内容
objects
记录每个commit版本的信息,git版本信息数据的核心地
- git status 查询工作区与暂存区文件的状态
工作区与本地仓库对比
工作区与暂存区对比
暂存区与工作区对比
- git add 文件名 添加文件到暂存区 git add . 添加所有文件到暂存区
git add -u 当add a.txt到缓存区后,再次修改a.txt 同时新建b.txt 执行该命令,只会提交a.txt 不会提交新建文件b.txt
- git commit -m “message” 提交当前缓存区的信息到本地仓库
- git push 将本地仓库的信息推到远程仓库
推的过程可能出现问题,因为没有拉去最新的仓库信息,需使用git pull进行拉去后再git push
- git pull 将远程仓库信息拉取到本地,并合并merge 大致相当与git fetch+git merge,合并的过程中可能会遇到冲突,需要处理,同下merge处理
- git fetch 将远程仓库信息拉取到本地仓库
- git merge 将信息进行合并
合并的过程中会冲突,如下:
<<<<<<< HEAD
Creating a new branch is mybiubiuh me_ou.
=======
Creating a new branch is yourbiubiuh me_ou.
>>>>>>> biubiuh
<<<<HEAD 当前分支的内容 >>>>biubiuh 为biubiuh分支的内容
- git log 查询git提交的日志
git log --all 查询所有分支的提交日志
git log -p -2 查询最近两次的提交差异
git log -n2 查询最近两天的提交信息
- git reflog 当回退到以前的版本后,使用git log只能看到当前版本之前的log日志,使用git reflog能看到当前版本之后的内容
- git rm 删除本地工作区文件,可使用git status查看 使用git commit后从本地仓库中也删除掉
- git rm --cached 删除已经提交add到缓存区的文件
- git mv name newname 文件重命名,需要commit
- git <命令> -h 帮助 git <命令> help git help
- git checkout与git reset
两个场景:
- 当add a.txt到缓存区后,对a.txt进行了修改,使用git checkout <文件名>可以使工作区的当前文件内容回退到缓存区的版本。
- 当add a.txt到缓存区后,后悔了,使用git reset HEAD <文件名> 使得缓存区的该文件被删除
注意:当add a.txt到缓存区后,修改a.txt或者删除a.txt后 使用git reset HEAD <文件名>,缓存区的该文件被删除,同时工作区的内容并不会变为缓存区的版本(例如工作区删除该文件,reset后依然不会出现)。
git reset --hard <commitId> 将版本回退到commitId版本
- git diff 对比内容差异
git diff --<文件名> 工作区与暂存区的该文件内容对比
git diff --cached 暂存区与仓库对比
git diff <commitIdFirst> <commitIdSecond> --<文件名> 两个版本的该文件对比
git diff <branchName1> <branchName2> 两个分支进行对比
- git clone
待续。。。。。。