programing

Android Studio 업데이트 프로젝트 : 병합 vs 리베이스 vs 브랜치 기본값

nasanasas 2020. 12. 31. 08:29
반응형

Android Studio 업데이트 프로젝트 : 병합 vs 리베이스 vs 브랜치 기본값


Merge vs Rebase와 관련하여 상당한 양의 질문이 있음을 알기 때문에 이것이 중복되는 것처럼 보이면 사과하지만 'Branch Default'도 던지는 것 같지 않습니다.

여러 사람이 동시에 작업하는 경우 (예 : Android Studio의 Android 앱)가 제공됩니다. 누군가가 마스터 브랜치로 푸시하고 아직 작업중인 작업을 덮어 쓰지 않고 아직 커밋하고 마스터로 푸시하지 않도록 새 마스터를 가져 오려는 경우 프로젝트 / 풀을 업데이트하는 가장 좋은 옵션은 무엇입니까? Android Studio는 'Update Project'를 클릭하면 'Merge' 'Rebase'및 'Branch Default'를 표시합니다. 어떻게 들리면 'Rebase'( 'Merge'가 뒤 따르는?)를하고 싶지만 확실하지 않습니다.


은닉

여기서 핵심은 저장하려는 커밋되지 않은 작업이 있다는 것입니다. 병합을 시도하기 전에 커밋되지 않은 변경 사항 을 저장하고 작업 디렉토리를 정리하기 위해 변경 사항숨겨야합니다 .

git stash변경 사항을 숨기려면 실행하십시오 . 그런 다음 문제없이 변경 사항을 가져올 수 있어야합니다.

성공적으로 풀을 가져온 후에 git stash apply는 풀 이전에 변경 한 사항을 다시 적용하기 위해를 수행 할 수 있습니다 .

병합 및 리베이스

변경 사항 숨김은 커밋되지 않은 변경 사항 만있는 경우에만 작동합니다 . 어떤 시점에서 커밋했지만 푸시하지 않은 경우 리베이스하거나 병합해야합니다.

이 StackOverflow 게시물 에는 차이점에 대한 몇 가지 훌륭한 정보가 있습니다.

일반적으로 병합이 더 쉽지만 일부는 병합 커밋으로 git 히스토리를 "오염"한다고 생각합니다.

리베이스에는 추가 작업이 필요하지만 병합 커밋이 없기 때문에 기본적으로 병합이 보이지 않게됩니다.

다시 말하지만, 귀하의 경우에는 병합하거나 리베이스 할 필요가 없습니다. 간단히 은닉하고, 당기고, 은닉을 적용하면 모두 괜찮습니다.


여기에 이미지 설명 입력

IntelliJ IDEA documnetatition 에 따르면 :

업데이트 유형

  • 병합 : 병합 전략을 적용하려면이 옵션을 선택합니다. 결과는 running git fetch ; git merge또는 git pull --no-rebase.
  • 리베이스 다음 REBASE 전략을 적용하려면이 옵션을 선택합니다. 결과는 running git fetch ; git rebase또는 git pull --rebase.
  • 분기 기본값 : 분기에 대한 기본 명령을 적용하려면이 옵션을 선택합니다. 기본 명령은 구성 파일 branch.<name>섹션에 지정 .git/config됩니다.

업데이트 전 작업 트리 정리

이 영역에서 업데이트 전에 작업 트리를 정리하는 동안 변경 사항을 저장하는 방법을 지정합니다. 업데이트가 완료되면 변경 사항이 복원됩니다. 사용 가능한 옵션은 다음과 같습니다.

  • Stash 사용 : 변경 사항을 Git 숨김에 저장하려면이 옵션을 선택하면 Git 자체에서 생성되므로 IntelliJ IDEA 외부에서도 변경된 숨김 패치를 적용 할 수 있습니다. 사용
  • Shelve : 변경 사항을 서가에 저장하려면이 옵션을 선택합니다. Shelving은 IntelliJ IDEA 내부 작업이며, 보류 된 변경에서 생성 된 패치는 일반적으로 IntelliJ IDEA 내부에 적용됩니다 (보관되지 않음). IntelliJ IDEA 외부에서 보류 된 변경 사항을 적용하는 것도 가능하지만 추가 단계가 필요합니다.

Google 문서에서이 질문에 대한 답 (예 : 워크 플로)을 찾을 수 없습니다. 여기에 UI에서 완전히 Android Studio와 Git을 사용한 실제 경험이 있습니다.

(명령 줄과 IDE 사이를 전환 할 때 구토합니다. IDE가 부족하다는 의미입니다!)

  1. 변경 사항을 저장하십시오 : 프로젝트-> Git-> 저장소-> 변경 사항 저장을 마우스 오른쪽 버튼으로 클릭하십시오. 이름을 지어주세요.
  2. 동료가 수행 한 업데이트 가져 오기 : 프로젝트-> Git-> 저장소-> 가져 오기를 마우스 오른쪽 버튼으로 클릭합니다.
  3. 다음을 사용하여 코드 변경 사항을 다시 병합하십시오. Project-> Git-> Repository-> UnStash Changes-> Apply Stash
  4. 그러면 "충돌과 병합 된 파일"UI가 표시됩니다. 여기에서 파일을 선택하고 선택적으로 병합합니다.

경고

수동 병합 " 수정본 병합"UI는 끔찍 합니다. 한번 시도해 보면 무슨 말인지 알 수있을 것입니다. "스크롤링 동기화"가 실제로 작동하도록하는데 행운을 빕니다. 이 UI가 2015 년 첫 몇 주 이내에 해결되기를 진심으로 바랍니다.


문서 에 따르면 :

병합 : 업데이트 중에 병합 을 수행하려면이 옵션을 선택합니다 . 이것은 running
git fetchand then git merge또는 git pull --no-rebase.

리베이스 : 수행하려면이 옵션을 선택 REBASE를 업데이트 중입니다. 이것은 running
git fetchand then git rebase또는`git pull --rebase (모든 로컬 커밋이 업데이트 된 업스트림 헤드 위에 놓임)와 동일합니다.

분기 기본값 : 다른 분기에 대해 다른 업데이트 전략을 적용하려면이 옵션을 선택합니다. 구성 파일 branch.<name>섹션 에서 각 분기에 대한 기본 업데이트 유형을 지정할 수 있습니다 .git/config.

병합 vs 리베이스

여기에서 더 많은 것을 읽으 십시오


Android Studio 터미널로 Git 프로젝트 업데이트

  1. git add.
  2. git commit -m "anything"
  3. git push origin master

이것이 내가 귀하의 게시물에서 답을 찾고 싶었던 것입니다. 그래서 제가이 답을 쓰는 이유입니다.

참조 URL : https://stackoverflow.com/questions/24393148/android-studio-update-project-merge-vs-rebase-vs-branch-default

반응형