生活随笔
收集整理的這篇文章主要介紹了
玩转Git三剑客
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
查看提交日志信息
git log -n4(顯示最近提交次數) --oneline --all --graph
創建并切換分支
git checkout -b test(分支名)查看分支
git branch -v修改文件名
git mvgit日志工具
gitk
.git目錄說明
HEAD 指向當前分支的引用
config保存本地倉庫的配置信息
refs 中的heads和tag
- heads信息
- tags目錄文件存放標簽信
git cat-file -t/-p 1cal1924
參數說明-t:查看類型;-p:查看內容
objects目錄對象類型blog、tree、commit
commit、tree和blob三個對象之間的關系
一次commit會產生多少tree/blog
新建倉庫: git init swatch_git_objects進入初始化倉庫:cd swatch_git_objects創建文件夾并進入:mkdir doc cd doc創建文件并寫入內容helloecho “hello,world” readme添加到倉庫:git add doc提交:git commit -m “add remede”查看.git/objects下生成的對象:find .git/objects -type -f分別查看對象類型及內容:git cat-file -t/-p id號
分離頭指針情況下的注意事項
head 指向某個commit git checkout ee69111修改文件:vi nacos/config/application.properties提交文件:git commit -am “application file”切換分支:git checkout master分離指針文件并未關聯任何文件查看git 提交信息:gitk -all創建新的分支關聯commit:git branch fix_application ee69111
進一步理解HEAD和branch
基于fix_application創建fix_readme分支:git checkout -b fix_readme fix_application查看切換分支與HEAD之間的關系:cat .git/HEAD比較兩次提交的不同:git diff commitId1 commitId2/head head^(代表head父親)/head head~2(head爺爺)git diff 退出 q+enter鍵
怎么刪除不需要的分支?
刪除分支:git branch -d 分支名稱刪除分支:git branch -D 分支名稱
修改commit的message
對最近一次提交commit的message做變更:git commit --amend
修改老舊commit的message
- git rebase -i commitId的父id
- 修改提交commitId的關鍵字如:pick、reword、edit、fixup、exec
怎樣把連續的多個commit整理成一個
- 找到要修改的最前一個要修改commitId的上一個commitId
git rebase -i commitId(的上一個) - 將幾個commitId的前面的關鍵字改為s
把間隔的幾個commit整理成1個
- 找到間隔commit最前面一個的父commitId: git rebase -i commitId
- 最前面添加父pick commitId:pick commitId
- 將間隔幾個要修的的commit移動到父commitId后
- 前面的pick改為s
比較暫存區、HEAD、工作區所含文件的差異
比較暫存區和HEAD的差異:git diff --cached比較暫存區和工作區的差異: - 比較所有文件:git diff
- 比較指定文件:git diff – fileName
暫存區恢復成和HEAD一樣內容:git reset head工作區的文件恢復為和暫存區一樣:git checkout – fileName取消暫存區部分文件的更改:git reset head – fileName
消除最近的幾次提交
回退到某一版本的commit:git reset --head commitId
看看不同提交的指定文件的差異:git diff master temp – fileName
正確刪除文件的方法:git rm fileName
開發中臨時加塞了緊急任務 - 將任務放入存放起來:git stash
- 查看存放情況:git stash list
- 恢復存放,內容會保留備份:git stash apply
- 回復存放,不會保留備份:git stash pop
.gitignore介紹
Java.gitignore
# Compiled
class file
*.class# Log file
*.log# BlueJ files
*.ctxt# Mobile Tools
for Java
(J2ME
)
.mtj
.tmp
/# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar
.gz
*.rar# virtual machine crash logs
, see http
://www
.java
.com
/en
/download
/help
/error_hotspot
.xml
hs_err_pid
*
將Git倉庫備份到本地
啞協議備份:git clone --bare /f/git/git_learning/.git ya.git智能協議備份:git clone --bare file:///git/git_learning/.git zhineng.git添加遠端協議:git remote add /f/git/git_learning/.git ya.git將分支內容推向遠端:git push --set-upstream zhineng master(分支名字)
將GitHub配置公私鑰匙
查看本地是否有公私鑰匙:ls ~/.ssh生成公私鑰匙:ssh-keygen -t rsa -b 4096 -C “your_email@example.com”將本地公鑰匙拷貝到GitHub
本地倉庫同步到GitHub
添加遠端倉庫:git remote add github git@github.com:dreamingyin/git_learning.git查看遠程分支:git remote -v推送所有的內容:git push github --all拉取遠端master的分支內容: git fetch github master合并遠端master:git merge github/master允許沒有任何管理關系的master合并: git merge --allow-unrelated-histories github/master向master分支推送內容:git push github master
不同人修改了不同文件
克隆分支:git clone git@github.com:dreamingyin/git_learning.git git_leanring_02配置本倉庫的用戶名、郵箱:git config --local user.name ‘steven’、git config --local user.email ‘haoyeyin@gmail.com’查看本倉庫郵箱、用戶名配置情況:git config --local --list基于遠端的分支創建新分支:git checkout -b feature/add_git_command origin/feature/add_git_command切換新的倉庫:cd …/git_learning拉取遠端分支:git fetch github(遠端分支名稱)基于遠端分支創建本地分支:git checkout -b feature/add_git_command github/feature/add_git_command編輯index.html:vi index.html添加到暫存區:git add index.html提交信息:git commit -m’Add git command index’切換目錄修改readme.md:vim …/git_learning_02/readme.md提交到暫存區:git add -u提交信息:git commit -m’fix readme’切換到git_leanring:cd …/git_learning提交到遠端:git push github拉去遠端分支:git fetch合并分支:git merge github/feature/add_git_command再次提交:git push github
不同人修改了同文件的不同區域
修改兩個倉庫中同一個文件的不同區域:vim index.html分別提交:git commit -am’fix index’git_learning 提交到遠端:git push github切換到git_learning_02:cd …/git_leatning_02拉取遠端分支:git fetch合并遠端分支再次提交:git merge commitId、git push
不同人修改了同文件的同一區域
兩個工作區同時修改index.html的同一區域:vim index.html切換到git_learning提交到本地倉庫:git commit -am’Add stash and log commands’提交到遠端倉庫:git push github切換到git_learning_02并提交到本地倉庫:cd …/git_learning_02、git commit -am’Add branch and pull’提交遠程倉庫:git push報錯解決方案:git pull合并遠端分支:git merge 27b22e1編輯沖突信息:vim index.html提交到本地倉庫:git commit -am’Add 4 commands of index’提交到遠端倉庫:git push
同時變更了文件名和文件內容如何處理
git_learning_02修改文件名:git mv index.html index.htmgit_learning修改內容:vim index.htmlgit_learning_02提交信息到本地倉庫:git commit -am’mv index.html to index.htm’提交到遠程倉庫:git pushgit_learning提交到遠程倉庫:git push github從遠端拉去最信息:git pull
把同一文件改成了不同的文件名如何處理
修改git_learning倉庫中index.htm為index2.html:git rm index.htm index2.htm提交到本地倉庫:git commit -am’mv index to index2’提交到遠端倉庫:git push修改git_learning倉庫中index.htm為index1.html:git rm index.htm index1.htm提交到本地倉庫:git commit -am’mv index to index1’提交到遠端倉庫:git push
出現文件沖突, 解決方案拉取遠端最新內容:git push查看當前倉庫文件:ls -al比較沖突文件是否有差異:diff index1.htm index2.htm刪除沖突文件:git rm index2.htm index.htm查看文件狀態:git status提交信息到本地倉庫:git commit -am ‘Decide index to index1’提交到遠端倉庫:git push github(遠端分支名字默認為origin)
禁止向集成分支執行push -f操作
版本回退:git reset --hard commitId強制更新:git push origin feature/add_git_command
禁止向集成分支執行變更歷史的操作
GitHub核心功能
總結
以上是生活随笔為你收集整理的玩转Git三剑客的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。