Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Git은 기본적으로 로컬이 푸시 로컬에서 작업된 소스를 리모트에 Push 하고자 하는 리모트의 커밋히스토리 Commit 히스토리 사항을 기준으로 진행된다.

이때 리모트의 커밋 Commit 히스토리와 동일하지 않으면 Push 오류가 난다발생한다. 

로컬의 커밋을 임의로 변경했기때문에 Commit 을 임의로 변경했기 때문에, 이미 리모트와 다른 히스토리를 가지고 있다는 것을 명심 해야 한다있다.


강제푸시

푸시하는 브랜치의 이름앞에 + Push 하는 Branch 의 이름 앞에 "+" 를 붙여주면 된다. 

Code Block
themeRDark
# git push origin +new_branch

해당 브랜치가 협업으로 여러개발자가 사용되는 브랜치라고 하면 브랜치이면, 다른 개발자가 리모트의 브랜치를 다운받아 소스를 수정한 후 푸시한 경우가 발생되지 때문에 Push 한 경우 형상이 유실되기 때문에

강제 푸시하는 Push 하는 경우에는 다른 개발자의 소스가 유실될 가능성이 매우 높다.

이때, 이를 방지할수 있는 대책으로 다음과 같은 옵션이 있다.

Code Block
themeRDark
# git push --force origin +new_branch

이를 방지하지 위한 대책으로 --force-with-lease 옵션을 사용한다.

리모트 브랜치가 로컬 브랜치에서 푸시한 후에 변경된 내역이 없을때에만 강제 푸시가 진행이 된다.

로컬 브랜치와 리모트 브랜치 연결 옵션

Code Block
themeRDark
# git push -u origin NewBranch

-u | --set-upstream 옵션은 로컬 기능 개발 브랜치와 중앙저장소의 같은 이름의 브랜치를 연결하는 역할이다.

한번 연결한 후에는 git push 만 으로 push 진행이 가능하다.