① Git上面怎麼比較文件
看哪些文件修改過是 git status
對比源文件是 git diff
這些全部是基於文件系統來做的,並不是你想版象的實時標記,權所有的功能 git 都直接提供了,建議可以再深入一些學習下 git 本身
② 類似git/linux的文件對比功能是怎麼實現的
你的問題是:如何把修改後沒有提交(commit)的文件和已經提交的版本進行對比回? 對嗎? 你應該答用的是windows下面的帶有GUI的客戶端吧?那個帶GUI的客戶端能做的功能很少,所以要想真正使用Git,你還是要學一下git的shell 命令 windows下,有一個git ...
③ Git查看某個版本修改了哪些文件
查看某個文件某次的修改很簡單,這樣就可以了
git show 某次的提交哈希值 文件名
如果我的回答沒能幫助您,請繼續追問。
④ git怎麼查看哪些文件是在版本控制下的呢
TortoiseGit是一個開放的,為的git版本控制系統的源客戶端。像一個普通的文件伺服器,除了會記得您有史以來的文件和目錄的每一個變化外,還可以恢復您的文件的舊版本,並研究如何以及何時改變了歷史數據,誰改變了它。git相對於其他的版本控制,優勢在於分支管理。幾個常見情況及分支使用方法。1對於自己的代碼修改後,卻已經不知道伺服器上的代碼是否已經發生改變。此時想上傳自己的代碼。1)在master上創建分支mysrc;2)switch到mysrc分支,進行修改代碼;3)修改好代碼後,進行gitcommit操作;4)switch到master分支,進行gitpull操作,將伺服器上的代碼簽下來;5)進行gitmergefrommysrc操作,將mysrc的代碼合並到master中;6)gitcommit操作;7)gitpush操作。2修改自己的代碼過程中,還不需要上傳時,需要從伺服器上簽新的代碼,但保留當前的代碼修改。1)在master上創建分支mysrc;2)switch到mysrc分支,進行代碼修改;3)進行gitcommit操作;4)switch到master分支,進行gitpull操作;5)switch到mysrc分支,進行gitmergefrommaster操作;6)gitcommit操作。3修改了代碼,但僅想上傳部分代碼,其餘代碼保留同伺服器版本。1)在master上創建分支mysrc;2)switch到mysrc分支,進行代碼修改;3)修改好後,對部分代碼進行gitcommit操作;4)進行gitrebase操作,將其他代碼還原;5)switch到master分支,進行gitmergefrommysrc操作;6)gitpush操作。
⑤ github怎麼進行新舊文件的對比
你的問題是:如何把抄修改後沒有襲提交(commit)的文件和已經提交的版本進行對比? 對嗎?
你應該用的是windows下面的帶有GUI的客戶端吧?那個帶GUI的客戶端能做的功能很少,所以要想真正使用Git,你還是要學一下git的shell 命令
windows下,有一個git shell不知你是否安裝,如果有的話打開進入到你的工作目錄(也就是你提交代碼的那個目錄下面)
git status 可以查看有哪些文件變動
git diff 可以查看你所說的對比。其中 - XXXXXXXX表示刪除的行,+ XXXXXXXXXXX表示增加的行
git commit -a 提交
push origin master 上傳commit到Github
另外在Linux下有專門的對比工具,還有很多git的輔助插件比如tig,很好用。
如果你想用Git進行開發,建議你看看Pro Git,網上有電子版的,深入淺出,算是經典入門教材了。
⑥ sourcetree 如何讓任意兩個版本中同一個文件進行比較
選中任意兩個提交版本,右鍵選擇「創建補丁」,可以在創建補丁窗口中查看這兩個版本的差異。因為不需要真的創建補丁,看完差異後取消就好了。
⑦ Git當中怎麼尋找版本號,並回退以前版本當中的某個文件
簡單,git log -- your_path即可列出某個路徑的changelog,然後進一步查commit記錄就可以找到被刪掉的文件記錄了版
比如我的權xalk/grails-app/conf/Config.groovy早已經刪掉,但是可以通過git log顯示最後一次該文件的遞交記錄拿到這個commit。
git log -1 --decorate -- xalk/grails-app/conf/Config.groovy
⑧ 如何用git可以得到兩個版本之間修改了哪些文件
git diff hash1 hash1 --stat
如果是branch的話
git diff branch1 branch2 --stat
加上 --stat 是顯示文件列表, 否則是文件內容diff
⑨ git 獲取歷史版本的幾種方式
我們簡單的描述一個例子:
a)初始化操作
有兩個文件file1.txt和file2.txt
1, 初始化的時候就有這兩個文件
操作:
git init
git status
git add .
git commit -m 「init version」
2, 在master分支上修改了file1.txt,並提交
操作:
(修改file1.txt)
git add file1.txt
git commit -m 「change file1」
3, 然後新建分支banana,並切換到banana分支上
操作:
git branch banana
git checkout banana
4, 修改file1.txt和file2.txt,並提交。
操作:
(修改file1.txt和file2.txt)
git add file1.txt file2.txt
git commit -m 「change by banana」
這個時候,我們可以輸入 gitk,查看一下當前的版本情況。如下圖:git-001
5, 然後,切換到master分支上,修改file2.txt,並提交。
操作:
git checkout master
(修改file2.txt)
git add file2.txt
git commit -m 「change by master」
輸入gitk,查看當前版本情況,如下圖:git-002
b)發現問題需要查看歷史版本
我們現在發現當前的版本有點問題,還不能提交到版本庫。
1,我們需要從git commit中返回.
則輸入:
git reset --soft HEAD^
解釋一下,HEAD是當前分支的最新版本。^表示父節點。當前節點的父節點,就是上一次提交的版本。也就是標記為「change file1」的版本。
問為什麼不是」change by banana」這個版本呢?不同的分支哦。」change by banana」是banana分支的最新代碼,和master分支不同的。
這個時候輸入
git status
看看,是不是顯示file2.txt修改了沒有提交呢。
2,我們需要從git add中返回
再仔細查看之後,我們發現file2.txt真的寫錯了,需要返回到git add之前的狀態。
輸入:
git reset -q file2.txt
這個時候,file2.txt就回到了解放前了。用git status查看一下,file2.txt是」change not staged for commit」狀態。
3,回到沒有做過的情況
我們最終確定,最後一次修改的file2.txt是無用的代碼,我們需要廢棄掉。
注意,這個操作不能恢復的哦。
git reset --hard
這個命令,不能指定具體的文件。是把當前的修改全部清除,恢復到最後一次提交的版本。
這個時候,用gitk查看一下:git-003
已經徹底回復到了「change file 1」的版本了。
4,直接回復到某個版本
我們現在切換到banana分支。
git checkout banana
然後用gitk看一下。可以看出,我們之前的操作,對banana分支一點影響也沒有。現在我們需要把banana分支回復到初始狀態,但是當前的改動的代碼還是需要留著。我們可以看,init版本是當前版本的父節點的父節點。我們可以這么操作:
git reset --soft HEAD^^
然後用gitk看一下:git-004
最近的版本已經變成了init version了。所有的改動都是add未提交狀態。
5,得到當前最新代碼
最後。我們把file1.txt和file2.txt都刪掉。我們需要從版本庫中取得當前最新的代碼。
很簡單:
git checkout master
如果是要banana分支的最新代碼,則:
git checkout banana
以上的操作,我們知道了如何查看版本分支,和如何回復到以前的版本。
⑩ 如何使用git比較兩次commit之間的差異文件
如何使用git比較兩次commit之間的差異文件
有時候需要查看兩次提交之間的差異。
只需下面幾個步驟即可。
1.git log 查看提交歷史 如下:
commit
Author: songchong <[email protected]>
Date: Tue Aug 22 20:10:08 2017 +0800
git commit 5th
commit
Author: songchong <[email protected]>
Date: Tue Aug 22 20:07:32 2017 +0800
git commit fourth
commit
Author: songchong <[email protected]>
Date: Tue Aug 22 19:47:47 2017 +0800
git commit three