日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Git使用指南

發(fā)布時間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git使用指南 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.創(chuàng)建目錄?

$ git config --global user.name "Your Name Comes Here"?

$ git config --global user.email you@yourdomain.example.com?

$ git config --list 查看相關(guān)信息?

$ git init?

如果作為 Server 存在,那么可以忽略工作目錄,以純代碼倉庫形式存在。?

$ git --bare init?

可以在~/.gitconfig設(shè)置別名?

[alias]?
st = status?
ci = commit -a?
co = checkout??

2.文件操作?

$ git add .?

$ git add file1 file2 file3?

$ git add -u?

$ git add -p // 為你做的每次修改,Git將為你展示變動的代碼,并詢問該變動是否應(yīng)是下一次提交的一部分?;卮稹皔”或者“n”。也有其他選項,比如延遲決定:鍵入“?”來學(xué)習(xí)更多。?

$ git rm file1 file2 file3?

$ git mv file1 file2?

3.提交更改?

$ git commit -a -m ' '?

$ git commit --amend -a -m ' ' // 修改上一次的信息,不作為新的提交?

$ git stash // 保存當(dāng)前草稿,便于切換分支$ git stash pop?$ git stash apply$ git stash list$ git stash apply stash@{1}$ git stash clear

4.撤銷更改?

$ git reset HEAD file1 // 取消暫存區(qū)的文件快照(即恢復(fù)成最后一個提交版本),這不會影響工作目錄的文件修改。?

$ git reset --hard HEAD^ // 將整個項目回溯到以前的某個版本,可以使用 "git reset"。可以選擇的參數(shù)包括默認(rèn)的 "--mixed" 和 "--hard",前者不會取消工作目錄的修改,而后者則放棄全部的修改。該操作會丟失其后的日志?


$ git checkout -- file1 // 使用暫存區(qū)快照恢復(fù)工作目錄文件,工作目錄的文件修改被拋棄。?

$ git checkout HEAD^ file1 // 直接 "簽出" 代碼倉庫中的某個文件版本到工作目錄,該操作同時會取消暫存區(qū)快照。?

$ git checkout "@{10 minutes ago}" // 直接 "簽出" 10分鐘之前代碼倉庫中的某個文件版本到工作目錄,該操作同時會取消暫存區(qū)快照。?

$ git checkout "@{5}" // 直接 "簽出" 倒數(shù)第五次保存的某個文件版本到工作目錄,該操作同時會取消暫存區(qū)快照。?

$ git revert SHA1_HASH // 還原特定哈希值對應(yīng)的提交。該還原記錄作為一個新的提交。?

5.查看歷史紀(jì)錄或者當(dāng)前狀態(tài)?

$ git log?

$ git log -p?

$ git log --stat --summary?

$ git log V3..V7 //顯示V3之后直至V7的所有歷史記錄?

$ git log V3.. //顯示所有V3之后的歷史記錄。注意<since>..<until>中任何一個被省略都將被默認(rèn)設(shè)置為HEAD。所以如果使用..<until>的話,git log在大部分情況下會輸出空的。?

$ git log –since=”2 weeks ago” //顯示2周前到現(xiàn)在的所有歷史記錄。具體語法可查詢git-ref-parse命令的幫助文件。?

$ git log stable..experimental //將顯示在experimental分支但不在stable分支的歷史記錄?

$ git log experimental..stable //將顯示在stable分支但不在experimental分支的歷史記錄?

$ git log -S'你要找的內(nèi)容',就可以從全部的歷史紀(jì)錄,瞬間找到你要找的東西?


$ git blame FILE // 標(biāo)注出一個指定的文件里每一行內(nèi)容的最后修改者,和最后修改時間。?

$ git diff // 這個命令只在git add之前使用有效。如果已經(jīng)add了,那么此命令輸出為空?

$ git diff –cached // 這個命令在git add之后在git commit之前有效。?

$ git diff "@{yesterday}" // 比較當(dāng)前和昨天的內(nèi)容?

$ git status // 這個命令在git commit之前有效,表示都有哪些文件發(fā)生了改動?


$ git show 5b888 // 使用git show再加上述的commit名稱來顯式更詳細(xì)的commit信息?

$ git show master // 顯示分支信息?

$ git show HEAD // 使用HEAD字段可以代表當(dāng)前分支的頭(也就是最近一次commit)?

$ git show HEAD^ //查看HEAD的父母的信息, 可以使用^表示parent?

$ git show HEAD^^ //查看HEAD的父母的父母的信息?

$ git show HEAD~4 //查看HEAD上溯4代的信息?


$ git tag V3 5b888 //以后可以用V3來代替復(fù)雜的名稱(5b888…)?

$ git show V3?

$ git branch stable V3 //建立一個基于V3的分支?

$ git grep “print” V3 //在V3中搜索所有的包含print的行?

$ git grep “print” //在所有的歷史記錄中搜索包含print的行?


6.協(xié)作操作?


$ git clone git://server/path/to/files // Git deamon?

$ git clone your.computer:/path/to/script ?or?git clone ssh://car.colorado.edu/home/xxx ./xxxxx // SSH// SSH?
$ git pull?

$ git push //?在將代碼提交(push)到服務(wù)器之前,首先要確認(rèn)相關(guān)更新已經(jīng)合并(merge)到主分支(master)。還應(yīng)該先從服務(wù)器刷新(pull)最新代碼,以確保自己的提交不會和別人最新提交的代碼沖突。?

如果想在merge前先查看更改:?

$ git fetch /home/bob/myrepo master:bobworks //此命令意思是提取出bob修改的代碼內(nèi)容,然后放到我(rocrocket)工作目錄下的bobworks分支中。之所以要放到分支中,而不是master中,就是要我先仔仔細(xì)細(xì)看看bob的開發(fā)成果,如果我覺得滿意,我再merge到master中,如果不滿意,我完全可以直接git branch -D掉。?

$ git whatchanged -p master..bobworks //用來查看bob都做了什么?

$ git checkout master //切換到master分區(qū)?

$ git pull . bobworks //如果我檢查了bob的工作后很滿意,就可以用pull來將bobworks分支合并到我的項目中了?

7.分支管理?

$ git branch: 查看當(dāng)前分支?

$ git checkout -b/branch experimental: 創(chuàng)建新分支?

$ git checkout experimental: 切換到另一分支?

$ git merge experimental:合并分支?

$ git branch -d experimental:刪除分支, 使用的是小寫的-d,表示“在分支已經(jīng)合并到主干后刪除分支”。?

$ git branch -D experimental:刪除分支, 表示“不論如何都刪除分支”,-D使用在“分支被證明失敗”?

8.補(bǔ)丁工作?

git format-patch:當(dāng)你想給一個開源項目(例如Rails)提交一段代碼的時候,或者你想給小組成員展示一段你并不想提交的代碼,那么你還是需要 patch的,Git的'format-patch'命令良好的支持了這個功能。?
第一,利用branch命令 創(chuàng)建一個分支;?
第二,修改你的代碼;?
第三,在該分支上提交你的修改;?
第四,使用'git format-patch'命令來生成一個patch文件,例如:'git format-patch master --stdout > ~/Desktop/tmp.patch'就是將工作分支與master主干的不同,存放在'~/Desktop'文件夾下,生成一個叫做 tmp.patch的文件(另一種簡單的版本是利用diff命令,例如'git diff ..master > ~/Desktop/tmp.patch'),這樣就生成了patch文件。那么別人就可以使用'git apply'命令來應(yīng)用patch,例如'git apply ~/Desktop/tmp.patch'就是將patch打在當(dāng)前的工作分支上?

9.倉庫維護(hù)?

$ git fsck: 不加–full參數(shù)的情況下,這個命令一般會以非常低廉的代價確保倉庫在一個不錯的健康狀態(tài)之中。?

$ git count-objects: 統(tǒng)計有多少松散的對象,沒有 repack 的對象消耗了多少硬盤空間。?

$ git gc: 在本地倉庫進(jìn)行 repack,并進(jìn)行其他日常維護(hù)工作。?

$ git filter-branch --tree-filter `rm top/secret/file` HEAD //在所有記錄中永久刪除某個文件?

$ git rebase -i HEAD~10 // 后10個提交會出現(xiàn)在你喜愛的$EDITOR。通過刪除行來移去提交。通過為行重新排序來為提交重新排序。用“edit”來替換“pick”來標(biāo)志一個提交可修改。用“squash”來替換“pick”來將一個提交和前一個合并。?

10.錯誤查詢?

剛剛發(fā)現(xiàn)程序里有一個功能出錯了,即使你過去經(jīng)常提交變更,Git還是可以精確的找出問題所在:?

$ git bisect start?

$ git bisect bad SHA1_OF_BAD_VERSION?

$ git bisect good SHA1_OF_GOOD_VERSION?

Git從歷史記錄中檢出一個中間的狀態(tài),在這個狀態(tài)上測試功能,如果還是錯誤的:?

$ git bisect bad?

如果可以工作了,則把"bad"替換成"good"。?Git會再次幫你找到一個以確定的好版本和壞版本之間的狀態(tài),經(jīng)過一系列的迭代,這種二進(jìn)制查詢會幫你找到導(dǎo)致這個錯誤的那次提交。一旦完成了問題定位的調(diào)查,你可以返回到原始狀態(tài),鍵入:?

$ git bisect reset?

不需要手工測試每一次改動,執(zhí)行如下命令可以自動的完成上面的搜索:?

$ git bisect run COMMAND?

Git使用指定命令(通常是一個一次性的腳本)的返回值來決定一次改動是否是正確的:命令退出時的代碼0代表改動是正確的,125代表要跳過對這次改動的檢查,1到127之間的其他數(shù)值代表改動是錯誤的。返回負(fù)數(shù)將會中斷整個bisect的檢查。?


-----------------------------------------------------------------------------------------------------------?

將 Current working directory 記為 工作目錄(1)?

將 Index file 記為 暫存區(qū)(2)?

將 Git repository 記為 代碼倉庫(3)?




他們之間的提交層次關(guān)系是 (1) -> (2) -> (3)?

git add完成的是(1) -> (2)?

git commit完成的是(2) -> (3)?

git commit -a兩者的直接結(jié)合?




從時間上看,可以認(rèn)為(1)是最新的代碼,(2)比較舊,(3)更舊?

按時間排序就是 (1) <- (2) <- (3)?




git diff得到的是從(2)到(1)的變化?

git diff –cached得到的是從(3)到(2)的變化?

git diff HEAD得到的是從(3)到(1)的變化

轉(zhuǎn)載于:https://www.cnblogs.com/sunleecn/archive/2011/12/01/2270915.html

總結(jié)

以上是生活随笔為你收集整理的Git使用指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。