git 修改commit_Git从8到13 深入了解Git特性
上一章簡單的介紹了一些常用的Git命令,這一章主要是深入了解一下Git的稍微高級的一些知識和指令。
8.首先我們先來通過查看Git目錄里面的文件來深入了解一下Git版本控制的構造。
查看HEAD可以知道當前所在的分支。
在config文件里面存儲著Git里面的一些配置信息,不同的Git分支里面內容不同。
在refs文件夾里面包含heads和tags。hears里面有不同的分支的名字;tags里面主要就是一些里程碑的內容,也就是通常所說的打的一個tag。
9. objects文件夾里面存放的是Git里面核心的文件內容,主要是Git版本控制管理的三個對象,主要關系就是commit包含tree,tree里面包含blob。tree的話就是一個文件夾,blob就是文件的內容。 前面文件夾的名稱加上文件里面的名稱,通過命令行可以查看文件的類型和文件內容。 git cat-file -t md5值 查看類型 git cat-file -p md5值 查看內容 git branch -av 查看分支git status 查看文件的狀態
10. 暫存區,工作區,head所含文件之間差異比較 git diff --cached #暫存區和head所含文件的差異比較git diff #工作區和暫存區比較差異 全部文件git diff -- readme.txt #工作區和暫存區比較差異 個別文件git diff HEAD HEAD~2 #比較不同的headgit diff temp master #比較倆個分支的差異 git diff temp master -- index.html #比較倆個分支同一文件的差異
11.分離頭指針 當我們直接Check出來某個commit的時候,這個HEAD頭指針不屬于現在全部的branch版本的話,就是分離頭指針。當我們在代碼中做嘗試性變更的時候會遇到這個場景,比如說只是想嘗試性的寫一些功能,但是又不想保存到控制版本里面的時候。所以我們在使用分離頭指針的時候需要注意的是:commit提交一定要跟branch綁定在一起才會生效。git checkout c6693 #分離頭指針git branch write 2f87f57 #保存分離頭指針
在暫存區有時候寫完的代碼不想要了,需要全部恢復到工作區的時候。
git reset HEAD #把暫存區的全部內容恢復到工作區git reset HEAD 文件名 #把暫存區的部分內容恢復到工作區git reset --hard M5值 #恢復到指定的commit,取消最近的提交 這個操作有點危險喲。
12. commit的一些高級指令
- 修改commit的內容
`git commit --amend #修改最新的commit` `git rebase -i c6693435 #修改以前的commit的到時候需要找到他的父親然后修改`    - 把多個連續的commit合成一個commit `git rebase -i c669343 `
- 把不連續的commit合成一個commit `git rebase -i c669343 `
13.將Git倉庫備份到本地
說了這么多,沒有遠程倉儲怎么行,下面就先讓我們在本地初始化一個本地的Git倉庫。 Git常用的傳輸協議有啞協議 /path/to/repo.git 智能協議 file:///path/to/repo.githttp/https協議 http://git-server.com:port/path/to/repo.git https://git-server.com:port/path/to/repo.git ssh協議 user@git-server.com:path/to/repo.git 最常用啞協議傳輸進度是不可見的;智能協議傳輸可見 并且智能協議比啞協議傳輸速度快。git clone --bare 地址 名稱xx.gitgit clone --bare /e/BLOG/git/learn_git/.git ya.gitgit clone --bare file:///e/BLOG/git/learn_git/.git zhineng.gitgit remote add zhineng file///e/BLOG/tank/zhineng.git #同步到遠端 git push zhineng
總結
以上是生活随笔為你收集整理的git 修改commit_Git从8到13 深入了解Git特性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 技术系统进化法则包括_技术系统进化论,模
- 下一篇: C语言实现一个随机测试加减乘除,编写程序