„Git“: kaip naudoti stash-p saugoti tam tikrus failus?

Bandau išsiaiškinti, kaip saugoti du konkrečius failus tarp daugelio neprisiimtų pakeitimų.

Šis labai perspektyvus atsakymas: išdėstykite tik vieną failą iš kelių failų, kurie buvo modifikuoti naudojant „Git“? Rodo jokio naudojimo, ir man tai sunku.

Toliau išvardyti veiksmai neveikia, o nuorodinis puslapis nėra labai naudingas (atrodo, kad terminalas išeina, o ne tai, kad jis paprastai yra įstrigo). Noriu pridėti application.conf ir plugins.sbt ir tada perduoti likusią.

 app (master)$ git status On branch master Your branch is ahead of 'origin/master' by 29 commits. (use "git push" to publish your local commits) Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: views/mobile/blog.scala.html modified: views/mobile/slideshow.scala.html modified: ../public/css/mobile/styles.css Unmerged paths: (use "git reset HEAD <file>..." to unstage) (use "git add <file>..." to mark resolution) both modified: ../conf/application.conf Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: ../project/plugins.sbt app (master)$ git stash -p ../conf/application.conf ../project/plugins.sbt usage: git stash list [<options>] or: git stash show [<stash>] or: git stash drop [-q|--quiet] [<stash>] or: git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>] or: git stash branch <branchname> [<stash>] or: git stash [save [--patch] [-k|--[no-]keep-index] [-q|--quiet] [-u|--include-untracked] [-a|--all] [<message>]] or: git stash clear 
11
16 мая '14 в 23:42 2014-05-16 23:42 doub1ejack paklausė gegužės 16 d. 14, 23:42 2014-05-16 23:42
@ 2 atsakymai

Naudojimas

 git stash --patch 

„git“ parodys dialogo >

 diff --git files over files index e69de29..ac4f3b3 100644 --- a/file.txt +++ b/file.txt @@ -0,0 +1 @@ +you did awesome stuff! Stash this hunk [y,n,q,a,d,/,e,?]? 

Stulpelis yra nuosekli diferencinė linija, nes git -diff tai sukuria. Jei norite pasirinkti vieną failą, jums reikės pridėti medžių į „ecline“, kol pasieksite šį failą, tada galėsite pridėti ll medžių iš šio failo.

Taip pat galite pasirinkti vieną kūrinį atsakydami į klausimą su y . Jei gabalas atrodo per didelis, galite jį naudoti netgi. Tai taip pat įmanoma, kai srovės kiaurymė.


Naudojant --patch -option galima naudoti skirtingas git komandas (pvz., --patch priskirti ir add ).

Tai išsamus „ --patch funkcijos paaiškinimas, kurį paėmiau iš kūrėjo dokumentacijos :

 This lets you choose one path out of a 'status' like selection. After choosing the path, it presents the diff between the index and the working tree file and asks you if you want to stage the change of each hunk. You can select one of the following options and type return: y - stage this hunk n - do not stage this hunk q - quit; do not stage this hunk or any of the remaining ones a - stage this hunk and all later hunks in the file d - do not stage this hunk or any of the later hunks in the file g - select a hunk to go to / - search for a hunk matching the given regex j - leave this hunk undecided, see next undecided hunk J - leave this hunk undecided, see next hunk k - leave this hunk undecided, see previous undecided hunk K - leave this hunk undecided, see previous hunk s - split the current hunk into smaller hunks e - manually edit the current hunk ? - print help 
17
17 мая '14 в 0:33 2014-05-17 00:33 atsakymas suteikiamas florianbui gegužės 17 d., 14 val. 0:33 2014-05-17 00:33

Naudokite git stash -p be argumentų. Tada galite interaktyviai pasirinkti pakeitimus, kuriuos norite išsaugoti:

 diff --git a/test b/test index acbd8ae..662d47a 100644 --- a/test +++ b/test @@ -10,6 +10,7 @@ test (...) + test (...) Stash this hunk [y,n,q,a,d,/,e,?]? 

Deja, neįmanoma pasirinkti failų, tik vienetų.

5
16 мая '14 в 23:50 2014-05-16 23:50 atsakymą pateikė Gergo Erdosi , gegužės 16 d. 14, 23:50 2014-05-16 23:50

Peržiūrėkite kitus klausimus apie „ žymes arba užduokite klausimą