“git add, git commit”전후에 언제 “git pull”을 수행해야합니까? 올바른 방법은 무엇입니까? git add foo.js git commit foo.js

올바른 방법은 무엇입니까?

git add foo.js
git commit foo.js -m "commit"
git pull
git push

또는

git pull
git add foo.js
git commit foo.js -m "commit"
git push

또는

git add foo.js
git pull
git commit foo.js -m "commit"
git push

UPD :

이 경우 추적수정 된 파일 git add을 준비하는 데 사용한다는 것을 언급하는 것을 잊었습니다 . 저장소에 새 파일을 포함하지 않습니다. 이것은 명령의 순서를 변경합니까?



답변

이를 수행하는 가장 좋은 방법은 다음과 같습니다.

로컬 변경 사항을 숨 깁니다.

git stash

분기를 최신 코드로 업데이트

git pull

로컬 변경 사항을 최신 코드에 병합하십시오.

git stash apply

변경 사항 추가, 커밋 및 푸시

git add
git commit
git push

내 경험상 이것은 Git (어쨌든 명령 줄에서)에 대한 저항을 최소화하는 경로입니다.


답변

pull = 가져 오기 + 병합.

병합하기 전에 수행 한 작업을 커밋해야합니다.

그러니 커밋 후 당기십시오.


답변

큰 병합과 가능한 충돌을 최소화하기 위해 가능한 한 자주 원격 지점에서 가져 오는 것이 좋습니다.

그렇게 말 했으니 첫 번째 옵션을 선택하겠습니다.

git add foo.js
git commit foo.js -m "commit"
git pull
git push

가져 오기 전에 변경 사항을 커밋하여 가져 오기 중에 커밋이 원격 변경 사항과 병합되도록합니다. 이로 인해 문제가 발생하고 어떤 이유로 든 병합을 중단해야하는 경우 코드가 이미 커밋되었음을 알 수있는 충돌이 발생할 수 있습니다.

나는 누군가가 나에게 동의하지 않을 것이라고 확신합니다. 나는 이 병합 흐름을 수행 하는 올바른 방법 이 없다고 생각 합니다.


답변

git pull --rebase특정 지점에서 가지고 있지 않은 원격 커밋 위에 로컬 최근 커밋을 설정하는 가장 깨끗한 방법 이라고 생각 합니다.

따라서 변경을 시작할 때마다 당길 필요가 없습니다.


답변

변경 사항이 원격 분기의 현재 상태 위에 놓이기를 원합니다. 그래서 아마도 당신은 자신을 저지하기 직전에 당길을 원할 것입니다. 그 후 변경 사항을 다시 푸시하십시오.

“더러운”로컬 파일은 원격 브랜치와 충돌하지 않는 한 문제가되지 않습니다. 그래도 충돌이 발생하면 병합이 실패하므로 로컬 변경을 커밋하기 전에 가져올 위험이나 위험이 없습니다.