Git常用功能記錄
1. git查看某個文件的修改歷史
git log --pretty
然後使用下面的命令可列出文件的所有改動歷史,註意,這裏著眼於具體的一個文件,而不是git庫,如果是庫,那改動可多了去了~
git log --pretty=oneline 文件名
如:
[email protected]:android_src/packages/apps/Mms/src/com/android/mms/ui# git log --pretty=oneline MessageItem.java
27209385caf678abe878375a470f4edd67a2d806 fix to process force close when empty address contained in card
0e04b16f1dad7dc0a36e2235f7337bc656c365c7 display for 1970-1-1
e4abf3a213197491e0855e101117b59b5dc0160d HREF#13954 receive, store, and display wap push
356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e HREF#16265_uim_show_time_error
350f9d34c35ab50bdb4b2d43fb3ff9780e6c73fa fix xxxx
715e32f97bd9d8ce4b5ba650b97ba4b137150456 Fix ANR from calling Contact.get()
fd8357ff5febab0141e1beb8dd3b26f70416b108 Fix missing From field
二、git show
如上所示,打印出來的就是針對文件MessageItem.java的所有的改動歷史,每一行最前面的那一長串數字就是每次提交形成的哈希值,接下來使用git show即可顯示具體的某次的改動的修改~
git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e
結果如下:
[email protected]:/android_src/packages/apps/Mms/src/com/android/mms/ui# git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e
commit 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e
Author: 某某某 <某某某的郵箱>
Date: Thu Jan 6 01:50:31 2011 +0800
修改的描述(是該代碼commit時所填)
Signed-off-by: 某某某 <某某某的郵箱>
diff --git a/src/com/android/mms/ui/MessageItem.java b/src/com/android/mms/ui/MessageItem.java
index 0a0c4b7..55c3b27 100644
--- a/src/com/android/mms/ui/MessageItem.java
+++ b/src/com/android/mms/ui/MessageItem.java
+
+ 列出具體的改動
-
-
這樣就可以知道是誰做了修改,以及具體的修改代碼~
那接下來不管是直接去找他交流還是研究代碼,都有依據了~
補充:
我看到的更好的方法。
1. git log filename
可以看到fileName相關的commit記錄
2. git log -p filename
可以顯示每次提交的diff
3. 只看某次提交中的某個文件變化,可以直接加上fileName
git show c5e69804bbd9725b5dece57f8cbece4a96b9f80b filename
2. 用git如何把單個文件回退到某一版本
暫定此文件為a.jsp
1.首先到a.jsp所在目錄:
通過 git log a.jsp
查看a.jsp的更改記錄
2.找到想要回退的版本號:例如 fcd2093
通過 git reset fcd2093 a.jsp
把文件回退
3.提交本次回退
git commit -m "註釋內容"
4.選中該文件
git checkout a.jsp
5.push到遠程目錄
git push origin branch 例如 : git push origin bugfix/req-910
3. git reset --hard 之 git版本回退
1.假設有2個提交記錄
commit def5adef853da4cc05752bdb36577c127be71ba5
Author: 132982jianan <[email protected]>
Date: Thu Dec 28 16:01:36 2017 +0800
add data to 1.txt
commit f36801544670e00b2f59a28e19017d2786c4085e
Author: 132982jianan <[email protected]>
Date: Thu Dec 28 15:59:46 2017 +0800
init 1.txt
(END)
2.現在回到最開始的那一個提交
git reset --hard f36801544670e00b2f59a28e19017d2786c4085e
3.查看日誌,就會發現只剩下一個提交了
git log
commit f36801544670e00b2f59a28e19017d2786c4085e
Author: 132982jianan <[email protected]>
Date: Thu Dec 28 15:59:46 2017 +0800
init 1.txt
(END)
4.這個時候,發現回退版本錯了,那麽就用git reflog查看提交記錄
git reflog
f368015 [email protected]{0}: reset: moving to f36801544670e00b2f59a28e19017d2786c4085e
def5ade [email protected]{1}: reset: moving to def5ade
f368015 [email protected]{2}: reset: moving to f36801544670e00b2f59a28e19017d2786c4085e
def5ade [email protected]{3}: commit: add data to 1.txt
f368015 [email protected]{4}: commit (initial): init 1.txt
5.找出想要回退的版本,進行回退
恢復
git reset --hard def5ade
---------------------
4 git如何刪除已經提交的文件夾
在上傳項目到github時,忘記忽略了某個文件夾.idea,就直接push上去了, 最後意識到了此問題,決定刪除掉遠程倉庫中的.idea文件夾
刪除前:
刪除後:
在github上只能刪除倉庫,卻無法刪除文件夾或文件, 所以只能通過命令來解決
首先進入你的master文件夾下, Git Bash Here ,打開命令窗口
$ git --help # 幫助命令
$ git pull origin master # 將遠程倉庫裏面的項目拉下來
$ dir # 查看有哪些文件夾
$ git rm -r --cached .idea # 刪除.idea文件夾
$ git commit -m ‘刪除.idea‘ # 提交,添加操作說明
$ git push -u origin master # 將本次更改更新到github項目上去
---------------------
作者:皮皮今
來源:CSDN
原文:https://blog.csdn.net/weiyoushi4001/article/details/82495364
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
Git常用功能記錄