Якія адрозненні паміж "git commit" і "git push"?

У падручніку Git, які я праглядаю, git commit выкарыстоўваецца для захоўвання зробленых вамі змяненняў.

Што такое git push ?

770
30 апр. зададзены ben 30 крас. 2010-04-30 17:17 '10 у 17:17 2010-04-30 17:17
@ 15 адказаў

У асноўным git commit "запісвае змены ў рэпазітар" While git push "абнаўляе выдаленыя спасылкі разам са звязанымі аб'ектамі". Такім чынам, першы выкарыстоўваецца ў сувязі з вашым лакальным рэпазітаром, у той час як апошні выкарыстоўваецца для ўзаемадзеяння з выдаленым рэпазітаром.

Вось добрая карціна з Oliver Steele , якая тлумачыць мадэль git і каманды:

2019

1442
30 апр. адказ дадзены tanascius 30 крас. 2010-04-30 17:20 '10 у 17:20 2010-04-30 17:20

commit: даданне змяненняў у лакальны рэпазітар

border=0

push: перадача апошняга фіксацыі на выдалены сервер

169
30 апр. адказ дадзены TheHippo 30 крас. 2010-04-30 17:20 '10 у 17:20 2010-04-30 17:20

Ну, у асноўным git commit змяшчае вашыя змены ў лакальнае РЭПО, а git push адпраўляе вашыя змены ў выдаленае месцазнаходжанне.

52
30 апр. адказ дадзены markovuksanovic 30 крас. 2010-04-30 17:21 '10 у 17:21 2010-04-30 17:21

git push выкарыстоўваецца для дадання камітаў, якія вы зрабілі ў лакальным рэпазітары, да выдаленага - разам з git pull , гэта дазваляе людзям супрацоўнічаць.

25
30 апр. адказ дадзены Michael Borgwardt 30 крас. 2010-04-30 17:20 '10 у 17:20 2010-04-30 17:20

Так як git - гэта сістэма кіравання размеркаванай версіяй, розніца заключаецца ў тым, што фіксацыя будзе фіксаваць змены ў вашым лакальным рэпазітары, тады як push прывядзе да зменаў да аддаленага РЭПО.

23
30 апр. адказ дадзены Justin Ethier 30 крас. 2010-04-30 17:20 '10 у 17:20 2010-04-30 17:20

git commit запішыце свае змены ў рэпазітар лакальны.

git push абнавіць рэпазітар аддалены з вашымі лакальнымі зменамі.

12
11 авг. адказ дадзены Naresh 11 жнів. 2013-08-11 09:20 '13 у 09:20 2013/08/11 09:20

'Захаваць як'} сховішчы. Git-рэпазітар = серыя (дрэва) камітаў (плюс некалькі дадатковых рэчаў).

Лакальны рэпазітар: рэпазітар на вашым кампутары.

Аддалены рэпазітар: рэпазітар на серверы (напрыклад, Github.com).

git commit : дадаць новы комм (апошні комм + паэтапныя мадыфікацыі) у лакальны рэпазітар.

git push , git pull : сінхранізуецца лакальны рэпазітар са звязаным з ім выдаленым рэпазітаром. push - прымяніць змены з лакальнага на аддалены, pull - прымяніць змены з аддаленага на лакальны.

10
04 авг. адказ дадзены xged 04 жнів. 2016-08-04 18:59 '16 у 18:59 2016/08/04 18:59

Тры рэчы на ​​нататку:

1) Рабочы каталог ----- папка, у якой знаходзіцца наш файл кодаў

2) Лакальны рэпазітар ------ Гэта ўнутры нашай сістэмы. Калі мы ўпершыню ствараем каманду COMMIT, ствараецца гэты лакальны рэпазітар. там жа, дзе знаходзіцца наш працоўны каталог,
Checkit (.git) файл будзе створаны.
Пасля гэтага, калі мы робім комм, ён захоўвае змены, якія мы ўносім у файл Working Directory ў лакальны рэпазітар (.git).

3) Аддалены рэпазітар ----- Ён размешчаны па-за нашай сістэмы, як і на серверах, размешчаных у любым пункце свету. як GitHub. Калі мы выконваем каманду PUSH, коды з нашага лакальнага рэпазітара захоўваюцца ў гэтым выдаленым рэпазітары.

4
16 мая '18 в 19:08 2018-05-16 19:08 адказ дадзены DEVINDER THAKUR 16 мая '18 у 19:08 2018/05/16 19:08

Проста хачу дадаць наступныя пункты:

Yon не можа націскаць да таго часу, пакуль вы не зафиксируете, паколькі мы выкарыстоўваем git push , каб націскаць фіксацыі, зробленыя на вашай лакальнай галінцы, у аддалены рэпазітар.

Каманда git push прымае два аргументу:

Выдаленае імя, напрыклад origin Імя галінкі, напрыклад master

напрыклад:

git push <REMOTENAME> <BRANCHNAME>

4
27 нояб. адказ дадзены Faisal Shaikh 27 лістапада. 2016-11-27 22:52 '16 а 22:52 2016/11/27 22:52

Вельмі грубая аналогія: калі мы параўнаем git commit з захаваннем адрэдагаваць файл, то git push будзе капіяваць гэты файл у іншае месца.

Калі ласка, не вымайце гэтую аналогію з гэтага кантэксту - фіксацыя і націск не што іншае, як захаванне адрэдагаваць файл і яго капіяванне. Тым не менш, гэта павінна быць толькі для параўнання.

2
04 авг. адказ дадзены amn 04 жнів. 2016-08-04 21:34 '16 а 21:34 2016/08/04 21:34

Прасцей зразумець выкарыстанне каманд GIT add і commit калі ўявіць, што файл часопіса падтрымліваецца ў вашым рэпазітары на Github. Тыповы файл часопіса праекта для мяне можа выглядаць так:

 ---------------- Day 1 -------------------- Message: Completed Task A Index of files changed: File1, File2 Message: Completed Task B Index of files changed: File2, File3 ------------------------------------------- ---------------- Day 2 -------------------- Message: Corrected typos Index of files changed: File3, File1 ------------------------------------------- ... ... ...and so on 

Я звычайна пачынаю свой дзень з запыту git pull і сканчаю яго запытам git push . Такім чынам, усё ў дзённай запісу адпавядае таму, што адбываецца паміж імі. На працягу кожнага дня я выконваю адну або некалькі лагічных задач, якія патрабуюць змены некалькіх файлаў. Файлы, адрэдагаваныя падчас гэтай задачы, пералічаныя ў індэксе.

Кожная з гэтых подзадач (Задача A і Задача B тут) з'яўляецца асобнымі камітаў. Каманда git add дадае файлы ў спіс "Індэкс змененых файлаў". Гэты працэс таксама называецца пастаноўкай і ў рэчаіснасці запісвае змененыя файлы і выкананыя змены. Каманда git commit запісвае / завяршае змены і адпаведны індэксны спіс разам з карыстацкім паведамленнем, якое можа быць выкарыстана для далейшага выкарыстання.

Памятаеце, што вы ўсё яшчэ змяняеце толькі лакальную копію свайго сховішча, а не тую, што на Github. Пасля гэтага, толькі калі вы робіце git push , усе гэтыя запісаныя змены, а таксама вашыя індэксны файлы для кожнага камітаў, рэгіструюцца ў галоўным рэпазітары (на Github).

У якасці прыкладу, каб атрымаць другую запіс у гэтым ўяўным лог файле, я б зрабіў:

 git pull # Make changes to File3 and File4 git add File3 File4 # Verify changes, run tests etc.. git commit -m 'Corrected typos' git push 

У двух словах, git add і git commit дазваляюць разбіць змены ў галоўным рэпазітары на сістэматычныя лагічныя падмены. Як ужо адзначалася ў іншых адказах і каментарах, у іх, вядома, ёсць шмат іншых ужыванняў. Тым не менш, гэта адзін з найбольш распаўсюджаных спосабаў выкарыстання Git, які з'яўляецца шматступеннай сістэмай кантролю версій у адрозненне ад іншых папулярных сістэм, такіх як Svn.

0
15 янв. адказ дадзены Cibin Joseph 15 студз. 2018-01-15 09:13 '18 у 9:13 2018/01/15 09:13

у тэрмінах непрафесіянала, git commit - гэта крок да git push , які вы запускаеце ў гэтым парадку для паспяховага git вашага файла ў github.

0
18 июня '17 в 0:38 2017-06-18 00:38 адказ дадзены Zeal Murapa 18 чэрвеня '17 у 0:38 2017/06/18 00:38

git commit - гэта не што іншае, як афіцыйнае захаванне нашых змяненняў, для кожнага камітаў, які мы даем паведамленні камітаў, як толькі мы скончым з камітаў, мы можам перамясціць яго на выдалены кампутар, каб убачыць нашы змены глабальна

гэта азначае, што мы можам зрабіць мноства камітаў, перш чым мы адправім іх на выдалены сервер (мы можам убачыць спіс адбыліся камітаў і паведамленні), git захоўвае кожны комм з ідэнтыфікатарам камітаў, які ўяўляе сабой 40-значны код

і я выкарыстоўваю git push толькі тады, калі я хацеў убачыць свае змены ў аддаленым рэжыме (там пасля таго, як я праверу, ці працуе мой код у jenkins)

0
20 дек. адказ дадзены Sai Koti 20 снеж. 2017-12-20 10:49 '17 года ў 10:49 2017/12/20 10:49

git commit заключаецца ў фіксацыі файлаў, размешчаных у лакальным РЭПО. git push - паскораная перасылка зліцця галоўнай галінкі лакальнай боку з выдаленай галоўнай галіной. Але зліццё не заўсёды будзе паспяховым. Калі з'яўляецца адмова, вы павінны pull , каб вы маглі зрабіць паспяховы git push .

-3
12 авг. адказ дадзены Marcus Thornton 12 жнів. 2014-08-12 11:56 '14 у 11:56 2014/08/12 11:56

Ну, у асноўным git commit пераносіць вашыя змены ў лакальнае РЭПО, а git push адпраўляе вашыя змены ў выдаленае месцазнаходжанне. Паколькі git з'яўляецца размеркаванай сістэмай кіравання версіямі, розніца заключаецца ў тым, што фіксацыя будзе фіксаваць змены ў вашым лакальным рэпазітары, тады як push будзе націскаць змены да аддаленага РЭПО

source Google

http://gitref.org/basic/ гэтая спасылка будзе вельмі карысная.

https://git-scm.com/docs/git-commit

-3
01 авг. адказ дадзены oroyo segun 01 жнів. 2016-08-01 14:51 '16 у 14:51 2016/08/01 14:51

Іншыя пытанні па пазнаках або Задайце пытанне