git - Ваша філія випереджає "origin / master" на 1 комітку


107

Я новачок в git і працюю над git.

Я додав кілька файлів у git:

git add <file1>
git add <file2>

тоді я хотів підштовхнути це до огляду, але помилково це зробив

git commit

тому файли, які я змінив, не переглядають.
Тепер, якщо я введіть команду:

git status

він говорить

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)

Я хочу повернути цю фіксацію, і я хочу підштовхнути ці файли до огляду, а не виконувати. Хтось може дозволити мені знати, як я можу це зробити?


Якщо ви хочете скасувати зобов’язання - погляньте на подібне питання .
ДМИТРІЙ МАЛИКОВ

1
Я не знаю, що ви використовуєте для огляду коду. Проста відповідь на просте запитання про те, як зняти зобов’язанняgit reset HEAD^
Anonymousmoose

я скинув голову. але тоді, коли я намагаюся натиснути, тоді він каже мені D file1.py, коли я намагався psuh, потім знову це говорить мені, що ваша гілка випереджає походження / майстра на 1 фіксацію
сам

Що ви маєте на увазі, коли говорите "Я хочу натиснути ці файли на розгляд"? Ви хочете, щоб інші люди бачили ваше вчинення?
Джейк Грін

мій код буде спочатку переглянуто, а потім буде скориговано. тому спочатку я хочу , щоб підштовхнути код для огляду , але по помилку я зробив
SaM

Відповіді:


128

Ви не можете натиснути що-небудь ще не вчинене. Порядок операцій:

  1. Внесіть зміни.
  2. git add - це етап ваших змін для здійснення
  3. git commit - це здійснює ваші поетапні зміни локально
  4. git push - це підштовхує ваші здійснені зміни до пульта

Якщо ви натискаєте, не чинячи, нічого не штовхає. Якщо ви берете участь без додавання, нічого не буде здійснено. Якщо ви додаєте без зобов'язань, нічого не відбувається, git просто пам’ятає, що додані вами зміни слід враховувати для наступного виконання.

Повідомлення, яке ви бачите (у вашій філії перебуває 1 комісія) означає, що у вашому локальному сховищі є одна комісія, яка ще не була натиснута.

Іншими словами: addі commitце локальні операції push, pullі - fetchце операції, які взаємодіють з дистанційним.

Оскільки, здається, існує офіційний робочий процес управління джерелами в місці, де ви працюєте, вам слід внутрішньо запитати, як це потрібно поводити.


4
ага гаразд. значить, це означає, що після фіксації я повинен натиснути це
сам

4
Хороше пояснення - питання, можливо, не хоче насправді повернути комісію, а скоріше, щоб люди переглянули комісію, перш ніж натискати її на originсховище. Я також рекомендую прочитати кілька підручників / вступів до git на git-scm.com/documentation
1212

1
Коли мій статус git каже: "Ваша філія випереджає" походження / розвиток "на 1 комітет". як саме я бачу, що файли були змінені? git diff, здається, нічого не робить
Том,

Інколи хтось там працював. Зробіть тягнення перед вашим поштовхом
Адріан П.

67

git reset HEAD^ --soft (Збережіть зміни, поверніться до останнього зобов’язання)

git reset HEAD^ --hard (Відхилити зміни, повернутися до останньої фіксації)


3
Яке значення ГОЛОВИ з морквою '^'? Я бачив, як це написано і без моркви.
Mugen

29

Якщо ви просто хочете відкинути зміни та повернутися до останнього комітету (того, яким ви хотіли поділитися):

git reset --hard HEAD~

Ви можете перевірити, щоб переконатися, що ви хочете цього ( git log), оскільки ви втратите всі зміни.

Більш безпечна альтернатива - бігати

git reset --soft HEAD~ # reset to the last commit
git stash              # stash all the changes in the working tree 
git push               # push changes 
git stash pop          # get your changes back 

21

Я вирішив це, запустивши просто:

git pull

Більше нічого. Зараз він показує:

# On branch master
nothing to commit, working directory clean

Це може спричинити проблеми, якщо буде створено більше однієї гілки, яка не потрібна.
Аніл Кумар Ар’я

1
ви повернулися до віддаленого стану і втратили останню роботу: D
Gucho Ca

13

git скидання HEAD ^

тоді модифіковані файли повинні з’являтися.

Ви можете перемістити змінені файли в нову гілку

використання,

git checkout -b newbranch

git checkout commit -m "files modified"

git push origin newbranch

git checkout master

тоді ви повинні бути на чистій гілці, а ваші зміни слід зберігати в новому відділенні. Пізніше ви можете просто об'єднати цю зміну в головну гілку


4
git reset HEAD <file1> <file2> ...

видаліть вказані файли з наступної фіксації

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.