Hoe een voorbeeld van git-pull te bekijken?

Is het zelfs mogelijk?

Kortom, er is een externe repository waaruit ik haal met alleen:

git pull

Nu wil ik een voorbeeld zien van wat deze trekkracht zou veranderen (een diff) zonder iets aan mijn zijde aan te raken. De reden is dat het ding dat ik aan het trekken ben misschien niet “goed” is en ik wil dat iemand anders het repareert voordat ik mijn repository “vuil” maak.


Antwoord 1, autoriteit 100%

Na het doen van een git fetch, doe een git log HEAD..origin/masterom de log-ingangen tussen je laatste gemeenschappelijke commit en de master branch van de origin te tonen. Om de diffs te tonen, gebruik je ofwel git log -p HEAD..origin/masterom elke patch te tonen, of git diff HEAD...origin/master(drie stippen niet twee) om een ​​enkel verschil te tonen.

Het is normaal gesproken niet nodig om een ​​ophaalactie ongedaan te maken, omdat het doen van een ophaalactie alleen de externevertakkingen bijwerkt en geen van uwvertakkingen. Als je niet bereid bent om een ​​pull en merge uit te voeren in alle remote commits, kun je git cherry-pickgebruiken om alleen de specifieke remote commits te accepteren die je wilt. Later, als je klaar bent om alles te krijgen, zal een git pullsamenvoegen met de rest van de commits.

Update: ik weet niet helemaal zeker waarom je het gebruik van git fetch wilt vermijden. Het enige wat git fetch doet is je lokale kopie van de remote branches updaten. Deze lokale kopie heeft niets te maken met een van je branches, en het heeft niets te maken met niet-vastgelegde lokale wijzigingen. Ik heb gehoord van mensen die git fetch uitvoeren in een cron-job omdat het zo veilig is. (Normaal gesproken zou ik dat echter niet aanraden.)


Antwoord 2, autoriteit 19%

Ik denk dat git fetchis wat je zoekt.

Het haalt de wijzigingen en objecten op zonder ze vast te leggen in de index van uw lokale repo.

Ze kunnen later worden samengevoegd met git merge.

Manpagina

Bewerken: verdere uitleg

Direct van de Git-SVN Crash Courselink

Hoe krijg je nu nieuwe wijzigingen van een externe repository? Je haalt ze op:

git fetch http://host.xz/path/to/repo.git/ 

Op dit moment bevinden ze zich in uw repository en kunt u ze bekijken met:

git log origin 

U kunt de wijzigingen ook wijzigen. Je kunt ook git log HEAD..origingebruiken om alleen de wijzigingen te zien die je niet in je branch hebt. Als u ze vervolgens wilt samenvoegen, doe dan gewoon:

git merge origin

Houd er rekening mee dat als u geen vertakking opgeeft om op te halen, deze standaard naar de tracking-afstandsbediening gaat.

Als u de man-pagina leest, krijgt u eerlijk gezegd het beste inzicht in opties en hoe u deze kunt gebruiken.

Ik probeer dit alleen aan de hand van voorbeelden en geheugen te doen, ik heb momenteel geen doos om op te testen. Je moet kijken naar:

git log -p //log with diff

Een ophaalactie kan ongedaan worden gemaakt met git reset –hard(link ) , maar alle niet-vastgelegde wijzigingen in uw stamboom gaan verloren, evenals de wijzigingen die u heeft opgehaald.


Antwoord 3, autoriteit 9%

Je kunt ophalen van een externe repo, de verschillen bekijken en vervolgens pullen of samenvoegen.

Dit is een voorbeeld voor een externe repo genaamd originen een branch genaamd masterdie de remote branch origin/mastervolgt:

git checkout master                                                  
git fetch                                        
git diff origin/master
git pull --rebase origin master

Antwoord 4, autoriteit 4%

Ik heb een aangepaste git-alias gemaakt om dat voor mij te doen:

alias.changes=!git log --name-status HEAD..

daarmee kun je dit doen:

$git fetch
$git changes origin

Hierdoor krijgt u een leuke en gemakkelijke manier om wijzigingen vooraf te bekijken voordat u een mergeuitvoert.


5

Hoe zit het met het klonen van de repo elders, en het doen van git log op zowel de echte kassa als de verse kloon om te zien of je hetzelfde hebt.

Other episodes