git vs dátumok
Az normális, hogy a git nem tartja meg az általa kezelt fájlok eredeti dátumait pl. egy branch váltáskor?
Pár napja tűnt fel, hogy a checkout után minden érintett fájl dátuma átíródott a checkout időpontjára, ami bizonyos esetekben eléggé zavaró számomra.
■ Pár napja tűnt fel, hogy a checkout után minden érintett fájl dátuma átíródott a checkout időpontjára, ami bizonyos esetekben eléggé zavaró számomra.
Build eszközök miatt van így,
https://git.wiki.kernel.org/index.php/GitFaq#Why_isn.27t_Git_preserving_modification_time_on_files.3F
De a gitben benne van az infó, szóval ha nagyon zavar, írhatsz rá valami eszközt, ami beállítja a neked tetsző dátumot.
Na épp ez jutott eszembe: egy
Közben megnéztem a linked, kutya legyek, ha értem a logikáját.
Elvileg csak azoknak a
Az bőven elég adott
Valami olyan lib forrása, ami sok kódot érint...
Szerintem, mivel a branch váltásakor az összes fájl lecserélődik, ami eltér, egyedül a commit-ból kimaradt (új?) fájlok maradnak meg a váltások közt, elvileg nem lenne szabad konfliktust generálnia a checkout-nak.
Szerintem.
De lehet, hogy csak én nem látom át.
Ez még gázosabb, mint
Módosítok valamit, majd commit nélkül checkout, újabb módosítás, commit és a másik branch-hez tartozó forrás máris az aktuálisban landol...
Akartam készíteni egy demot, hogy miért érzem problémásnak a linkeden lévő indoklást és pont ezt sikerült elkövetnem, viszont rollbacket nem tudom, lehet-e egyszerűen... Szóval majd rendes gépről csinálom újra, ahol nem arra kell figyelni, hogy valóban azt írtam-e, akit akartam. (Mobil "billentyűzet" gyönyörei :( )
stackoverfliw - de legalább megnyugodtam, hogy nem vagyok ennyire feledékeny, csak megváltozott valami a git működésében, mióta utoljára használtam a branch-eket.
Nem tudom, én alapból erre a
Nekem olyan emlékem volt, és
És kb ezt is várnám tőle, mert jelen állapotában nagyon könnyű agyonvágni a különböző verziókat.
Akkor nem enged checkoutot,
Mondjuk én mostanra már rászoktam a rendszeres
git status
-olásra, ha nem vagyok 100%-ig biztos, hogy mi a helyzet. Mint azls
használata parancssoros könyvtárnavigáció esetén.Hát valamit vagy elcsesztem,
Ott ugyanis szó nélkül átrakta a módosított, de nem kommitált fájlt a másik branchbe.
Sajnos log nem készült, nem tudom reprodukálni, mit csináltam.
Laptopon valóban úgy működik, ahogy vártam.
Akkor sem panaszkodik a git,
Nem. Csináltam egy main.c és
És ezt sikerült valahogy úgy megoldani, hogy a master és a br0 branch közt szabadon hurcoltam és ahol kiadtam a commit-ot, ott hagyta.
Legalábbis így emlékszem, de így utólag bármi lehetett.
Mindegy, a lényeg, hogy most és itt azt csinálja, amit elvártam tőle.
Kivéve a dátumokat, mert ugye azok miatt rendszeresen újrafordít mindent. :)
Valami halovány dolog azért kezd derengeni: a binárist nem szokás commitolni, jó helye van annak a .gitignore-ban. Emiatt van benne ráció, hogy branch váltáskor inkább gyártson újat belőle.
Hurcolhatod is
Enged branch-et váltani, ha ez nem "bántja" a pillanatnyi (még nem commitált) munkádat, berinyál, ha conflictol.
Ekkor még van lehetőség a stash -sel játszani, ha fontos gyorsan valamit megcsinálni a másik branch-en, utána vissza lehet (stash pop) hozni a változtatásaidat.
Viszont vigyázni kell, mikor melyik branch-en vagy... :)
+1
Checkoutolni egy-egy fájlt is lehet, ekkor figyelmeztetés nélkül buknak a nem commitolt változások.
"konfliktusban vannak" alatt ugye mindketten azt értjük, hogy az adott fájl mindkét branch-ben változott, és nagyjából ugyanott?
Vagyis akkor "rinyál", ha a jelenlegi brach is masterből származik és az új is, de nálam is és azon is változott a test.txt 3. sora.
Nem hiszem, hogy van
Illetve ha már itt tartunk, akkor a feledékenységből fakadó hibák kivédésére szintén hasznos a
git add -p
.