2016-11-16 3 views
1

gitリポジトリを持っていて、その履歴を以下に示します。gitの現在のファイルバージョンと、削除されたファイルの扱い方を確認してください。

../mypapers/Doc_thesis$ git log 
commit 5bbb3681e1630a423f143a2e97350f463669c214 
Author: ShijieXu <[email protected]> 
Date: Wed Nov 16 14:10:16 2016 -0400 

    Revist GraphJIT 

commit e8ccd771208c5d328936422d60dcae2d3850e3a1 
Author: ShijieXu <[email protected]> 
Date: Tue Nov 8 15:04:22 2016 -0400 

    version 

commit c8f2313c324cd0a07e67eb07f060d319bb4faa69 
Author: ShijieXu <[email protected]> 
Date: Wed Apr 13 11:03:53 2016 -0300 

    another chapter 

私の質問は以下のとおりです。

  1. ファイルの現在のバージョンを確認する方法は?たとえば、私は通常git checkout c8f2313c324cd0a07e67eb07f060d319bb4faa69を使ってファイルのバージョンを切り替えるので、いくつかのリビジョンを変更した後、現在のファイルがどのリビジョンであるかを調べる方法はありますか?
  2. コミット番号を変更するときに削除されたファイルを処理する方法。たとえば、コミットe8ccd771208c5d328936422d60dcae2d3850e3a1にはいくつかのファイルが削除されています。このコミットにチェックアウトした後、5bbb3681e1630a423f143a2e97350f463669c214に戻ると、すべて削除された新しいファイルがいくつか表示されます(git status)。それはあなたがファイルのあなたの古いバージョンのチェックアウトする方法によって異なり

    git status 
    On branch final_thesis 
    Changes to be committed: 
    (use "git reset HEAD <file>..." to unstage) 
    new file: #introduction.tex# 
    new file: UNBThesis2-1101.tex 
    new file: UNBThesis2_0430.pdf 
    new file: UNBThesis2_bak.tex 
    

おかげ

+0

Linuxの場合は、 'gitg'をインストールしてください。何が起きているのかを視覚的に表現することができます。 – bcmcfc

+0

あなたは本当に特に*ファイル*のバージョンに興味がありますか?*コミット*バージョンについてもっと気になりますか? 'git checkout 'のあなたの例は、潜在的に多くのファイルを表す特定の* commit *を選択します。 – torek

答えて

2
    • git checkout SHA1:あなたのインデックスが切り離さHEADモードになっている(あなたがいません支店でもっと長く)。 git diff yourBranchには、分離したHEADとブランチの違いが表示されます。
    • git checkout SHA1 -- afile:1つのファイルの内容だけを変更すると、
      git diffで十分です。あなたが進行中の仕事を持っていない場合は
  1. 、あなたの元SHA1に(ハード)リセットすることができます。

    git reset --hard original_SHA1 
    

reset leaves untracked files behind場合は、git clean -fdxを追加します。

関連する問題