Peržiūrėkite failų keitimo istoriją naudodami git versijas

Kaip peržiūrėti atskiros rinkmenos pakeitimo istoriją „Git“, išsamiai su modifikuotu?

Jis atėjo:

 git log -- [filename] 

kuris rodo man failo istoriją, bet kaip galiu gauti kiekvieno failo turinį?

Bandau pereiti nuo „MS SourceSafe“ ir tai buvo tiesiog right-clickshow history .

2672
10 нояб. nustatė Richard Nov 10 2008-11-10 18:42 '08 18:42 2008-11-10 18:42
ответ 21 atsakymas

Dėl to norėčiau naudoti:

 gitk [filename] 

arba vadovaukitės ankstesnių pavadinimų failo pavadinimu

 gitk --follow [filename] 
2086 m
24 авг. Atsakymą pateikė Claudio Acciaresi 24 rug . 2009-08-24 15:05 '09, 15:05 2009-08-24 15:05

Galite naudoti

 git log -p filename 

leisti git generuoti pleistrus kiekvienam žurnalo įrašui.

Žr

 git help log 

daugiau galimybių - iš tikrųjų ji gali padaryti daug gražių dalykų :) Norėdami gauti tik skirtumą tam tikram nustatymui, galite

 git show HEAD 

arba bet kokia kita peržiūra pagal ID. Arba naudokite

 gitk 

vizualiai peržiūrėti pokyčius.

1951 m
10 нояб. atsakymas pateikiamas VolkA 10 nov. 2008-11-10 18:56 '08, 18:56, 2008-11-10 18:56

git log --follow -p -- path-to-file

Tai parodys visą failo istoriją (įskaitant istoriją po pavadinimų ir kiekvieno pakeitimo skirtumus).

Kitaip tariant, jei failas su pavadinimo bar buvo pavadintas „ foo , tada „ git log -p bar (be „- --follow parinkties) rodys failo istoriją tik toje vietoje, kur ji buvo pervadinta - ji nerodys failų istorijos, kai ji buvo žinoma kaip foo . Naudojant git log --follow -p bar bus rodoma visa failo istorija, įskaitant visus failo pakeitimus, kai jis buvo žinomas kaip foo . -p parinktis leidžia įtraukti skirtumus kiekvienam pakeitimui.

1292
31 марта '11 в 2:25 2011-03-31 02:25 atsakymą pateikė Danas Moldingas kovo 31 d. 11:25 2011-03-31 02:25

Jei norite likti teksto režimu, galite naudoti tig .

Greitas diegimas:

  • apt-get : # apt-get install tig
  • Homebrew (OS X) : $ brew install tig

Jei norite peržiūrėti istoriją viename faile: tig [filename]
Arba peržiūrėkite išsamią repo istoriją: tig

Atrodo gitk , bet pagrįstas tekstu. Palaikykite terminalo spalvas!

153
07 июня '12 в 13:23 2012-06-07 13:23 Atsakymą Falken pateikė birželio 12 d. 12 val. 13:23. 2012-06-07 13:23

git whatchanged -p filename pat atitinka git log -p filename .

Taip pat galite pamatyti, kada failo viduje esanti tam tikra kodo eilutė buvo modifikuota naudojant git blame filename . Tai išspausdins trumpą įsipareigojimo ID, autorių, laiko žymę ir visą eilutės kodą kiekvienai failo eilutei. Tai labai naudinga, kai radote klaidą ir norite sužinoti, kada jis buvo įvestas (arba kas jis buvo).

107
11 нояб. atsakymą pateikė farktronix 11 nov. 2008-11-11 09:12 '08 at 9:12 am 2008-11-11 09:12

SourceTree naudotojai

Jei naudojate „SourceTree“, kad matytumėte savo saugyklą (tai yra nemokama ir ne bloga), galite dešiniuoju pelės klavišu spustelėti failą ir pasirinkti pasirinktą žurnalą.

2019

94
30 июля '13 в 21:55 2013-07-30 21:55 atsakymą pateikė Markas Foxas liepos 30 d. 13 val. 21:55 2013-07-30 21:55

Jei norite parodyti, kuri versija ir autorius paskutinį kartą pakeitė kiekvieną failo eilutę:

 git blame filename 

arba jei norite naudoti galingą GUI GUI:

 git gui blame filename 
61
11 авг. atsakymas pateikiamas 11 d. 2010-08-11 16:01 '10, 16:01, 2010-08-11 16:01

Kitų atsakymų santrauka po jų skaitymo ir žaidimo truputį:

Įprastinės komandos komanda bus

 git log --follow --all -p dir/file.c 

Bet jūs taip pat galite naudoti gitk (gui) arba tig (text-ui), kad suteiktumėte žmonėms daug suprantamesnius būdus, kaip jį pažvelgti.

 gitk --follow --all -p dir/file.c tig --follow --all -p dir/file.c 

Debian / ubuntu šių gražių įrankių diegimo komanda atrodo taip:

 sudo apt-get install gitk tig 

Ir šiuo metu naudoju:

 alias gdf='gitk --follow --all -p' 

todėl galiu tiesiog įvesti gdf dir kad gautumėte pagrindinės istorijos gdf dir pagrindinę istoriją.

44
05 дек. John Lawrence Aspden atsakymas gruodis 05 2012-12-05 21:38 '12, 12:38 PM 2012-12-05 21:38

Pridėkite šį pseudonimą prie .gitconfig:

 [alias] lg = log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\n--abbrev-commit --date=relative 

Ir naudokite komandą taip:

 > git lg > git lg -- filename 

Išvestis atrodys beveik lygiai taip pat, kaip ir „gitk“ išvestis. Mėgaukitės.

22
26 июня '13 в 23:12 2013-06-26 23:12 atsakymą pateikė Palesz , birželio 26 d. 13, 23:12 2013-06-26 23:12

Neseniai atradau tig ir tig , kad tai labai naudinga. Tam tikrais atvejais norėčiau, kad jis padarytų A ar B, bet didžiąją laiko dalį jis buvo gana tvarkingas.

Jūsų atveju tig <filename> gali būti tai, ko ieškote.

http://jonas.nitro.dk/tig/

17

Šiam tikslui parašiau git-play .

 pip install git-playback git playback [filename] 

Tai leidžia jums rodyti rezultatus komandinėje eilutėje (pvz., git log -p ) ir taip pat leisti atlikti kiekvieną gitk naudodami rodyklių klavišus (pvz., gitk ).

14
19 нояб. Atsakymas pateiktas Jian 19 lapkričio. 2012-11-19 09:25 '12 at 9:25 am 2012-11-19 09:25

Arba:

gitx -- <path/to/filename>

jei naudojate gitx

13
17 сент. George'o Andersono atsakymas rugsėjo 17 d. 2010-09-17 19:50 '10, 19:50, 2010-09-17 19:50

Jei norite peržiūrėti visą failo istoriją, įskaitant visus kitus filialus, naudokite:

 gitk --all <filename> 
9
07 авг. atsakymą pateikė Adi Shavit 07 rug. 2012-08-07 16:57 '12 at 16:57 2012-08-07 16:57

Jei naudojate „Git GUI“ („Windows“) meniu „Repository“, galite naudoti „Visualize Main Story“. Pažymėkite viršutinėje srityje esančią pataisą ir apatiniame dešiniajame kampe esantį failą ir pamatysite skirtumą tarp šio pataisymo apatiniame kairiajame kampe.

8
10 нояб. atsakymas pateikiamas 2008 m . lapkričio 10 d. 2008-11-10 18:56 '08, 18:56, 2008-11-10 18:56

Su puikiais „ Git“ plėtiniais, eikite į istoriją, kurioje failas vis dar egzistuoja (jei jis buvo ištrintas, kitaip tiesiog eikite į HEAD), eikite į skirtuką File tree , dešiniuoju pelės mygtuku spustelėkite failą ir pasirinkite File history .

Pagal numatytuosius nustatymus jis seka failą per pervadinimą, o skirtukas „ Blame “ ( Blame ) leidžia matyti pavadinimą šiame variante.

Pavyzdžiui, jame yra keletas nedidelių klaidų, rodančių fatal: Not a valid object name skirtuke „ View “, kai spustelėjau ištrinti, bet galiu gyventi su šiuo: -)

7
28 нояб. Atsakymą pateikė PhiLho lapkričio 28 d. 2012-11-28 18:58 '12, 18:58, 2012-11-28 18:58

„SmartGit“ :

  • Meniu leidžiama rodyti nekeičiamų failų: peržiūrėti / peržiūrėti nepakeistus failus
  • Dešiniuoju pelės mygtuku spustelėkite failą ir pasirinkite „Prisijungti“ arba paspauskite „Ctrl-L“
4
01 июня '16 в 13:44 2016-06-01 13:44 Atsakymą pateikė Antonín Slejška 01 birželio 16 d. 13:44 2016-06-01 13:44

Jei naudojate „TortoiseGit“, galite dešiniuoju pelės klavišu spustelėti failą ir padaryti „ TortoiseGit --> Show Log . Pasirodžiusiame >

  • Show Whole Project “ nėra pažymėta.

  • All Branches “.

4
13 авг. atsakymą pateikė user3885927 13 rug . 2015-08-13 00:22 '15 prie 0:22 2015-08-13 00:22

Taip pat galite tai išbandyti, kuriame išvardijami įsipareigojimai, kurie pakeitė tam tikrą failo dalį (įgyvendinta Git 1.8.4).

Rezultatas bus įsipareigojimų, kurie pakeitė šią konkrečią dalį, sąrašas. Ši komanda yra tokia:

 git log --pretty=short -u -L <upperLimit>,<lowerLimit>:<path_to_filename> 

kur viršutinis limitas yra start_line_number, o mažesnis dydis - galutinis failo numeris_ failas.

4
13 авг. atsakymas duotas jitendrapurohit 13 rug. 2015-08-13 08:41 '15 8:41 am 2015-08-13 08:41

Atsakymas, kurio ieškojau, nebuvo šiame sraute, tai yra failų, kuriuos nustatiau, pakeitimai. tai yra.

 git diff --cached 
4
01 дек. atsakymas pateikiamas Malks 01 dec. 2011-12-01 08:24 2011-11-01 08:24 08:24

git diff -U <filename> suteikia jums vieną skirtumą.

Jis turi būti nudažytas raudonai ir žaliai. Jei taip nėra, pirmiausia paleiskite git config color.ui auto .

3
20 мая '13 в 20:17 2013-05-20 20:17 Atsakymą davė Lukas Czerwinski gegužės 20 d., 13 val. 20:17 2013-05-20 20:17

Jei naudosite „Eclipse“ su „git“ papildiniu, jis turi didelį palyginimą su istorija. Dešiniuoju pelės mygtuku spustelėkite failą ir pasirinkite palyginti su => istorija

2
02 янв. atsakymą pateikė AhHatem 02 Jan 2013-01-02 22:35 '13, 10:35 PM 2013-01-02 22:35

Kiti klausimai apie žymes arba Užduoti klausimą