로컬 Git 분기와 원격 분기를 비교하는 방법
어떻게 볼 수 있습니까?diff
지역 지점과 원격 지점 사이에?
git diff <local branch> <remote>/<remote branch>
를 들면, 들면를예,git diff main origin/main
또는git diff featureA origin/next
물론 원격 추적 지점을 말하기 위해서는 당신이 해야 할 필요가 있습니다.git fetch
먼저 원격 저장소에 있는 분기에 대한 최신 정보가 있어야 합니다.
지점을 하려면 원격추분를업하려면다트음합입니다야해력을데이적을 .git fetch
처음과 그 다음:
git diff <mainbranch_path> <remotebranch_path>
넌 할 수 있다.git branch -a
및 을 제거함).remotes/
원격 지점 이름에서.
예:git diff main origin/main
, 즉 지점입니다
지정된 분기에 있는 경우 추적 중인 업스트림 분기와 작업 복사본을 비교하려면 다음을 사용합니다.
git diff @{upstream}
현재 HEAD를 업스트림 분기와 비교하려면 다음을 수행합니다(고마워 @Arijun).
git diff @ @{upstream}
업스트림이 설정되지 않은 경우 다음을 사용할 수 있습니다.@{push}
푸시 설정된 분기에 대한 차이를 얻으려면(@Arijun의 코멘트에서도 참조):
git diff @{push}
이 답변을 통해 수정사항 지정을 위한 Git 설명서는 다음과 같습니다.
<branchname>@{upstream}
를 들어, 예를 들어, 기호입니다.master@{upstream}
,@{u}
접미사 .@{upstream}
이름 형태의 지짧이으(은형태름로))으로<branchname>@{u}
은 ( )에서 지정한 를 말합니다.branchname
로 설정됩니다(으)로 됨).branch.<name>.remote
그리고.branch.<name>.merge
가되었습니다. 행방불명branchname
기본값은 현재 값입니다.
제1종
git branch -a
사용 가능한 분기 목록을 가져옵니다.출력에서 다음과 같은 것을 볼 수 있습니다.
* master
remotes/main/master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/mt
remotes/upstream/master
remotes/upstream/mt
그러면 차이를 보여줍니다.
git diff --stat --color remotes/main/master..origin/master
git diff remotes/main/master..origin/master
다음의 결과를 훨씬 더 잘 이해하고 있습니다.
git diff <remote-tracking branch> <local branch>
로컬 지점을 누르면 무엇이 삭제되고 무엇이 추가되는지 보여줍니다.물론 그 반대일 뿐이지만, 저에게는 더 읽기 쉽고, 앞으로 무슨 일이 일어날지 보는 것이 더 편합니다.
쉬운 방법:
git fetch
git log -p HEAD..FETCH_HEAD
이렇게 하면 먼저 기본 원격(원본)에서 변경 사항을 가져옵니다.리포지토리를 복제할 때 자동으로 만들어집니다.명시적으로 지정할 수도 있습니다.git fetch origin master
.
그리고나서git log
와 방금하는 데 -p
(패치 생성) 옵션이 차이점을 보여줍니다.)
TLDR:git diff <local branch> <remote branch>
Git in shell을 사용할 때, 저는 먼저 주위를 둘러보면서 방향을 잡는 것을 좋아합니다.
모든 분기를 표시하는 명령입니다.
$ git branch -a # (or git branch --all)
* my-branch
master
remotes/origin/some-branch
remotes/origin/HEAD -> origin/master
remotes/origin/my-branch
remotes/origin/some-other-branch
remotes/origin/master
두 의 현지지점이 .my-branch
그리고.master
및 지점과 4개의 원격 지점()some-branch
,some-other-branch
,master
,그리고.my-branch
).
또한, 옆있별표 .my-branch
내가 현재 그 지점에 있다는 사실을 나타냅니다(명령어를 사용하면 알 수 있습니다).git status
출할수력수.On branch my-branch.
).
참고: Git Bash 셸의 원격 분기는 빨간색으로 표시되고 로컬 분기는 녹색으로 표시됩니다.
원격 분기만 표시하려는 경우:
$ git branch -r # (or git branch --remotes)
origin/some-branch
origin/HEAD -> origin/master
origin/my-branch
origin/some-other-branch
origin/master
로컬 분기만 표시하기 위해 사용할 수 있지만, 이는 완전히 다른 명령입니다.로컬 분기 표시 방법git branch
이 없는
$ git branch
* my-branch
master
인 분기 옵션에 는 기분옵대한검완토면같다하오십이시음과려하료션에본이 있습니다.--list
예상과 달리 필터링을 허용할 수 있습니다.다음과 같은 패턴과 함께 사용합니다.
$ git branch --list 'my*'
* my-branch
은 또한 수다있니습도조를 조합할 수 .--list
을 사용하여-a
그리고.-r
그러나 패턴을 적절히 조정해야 합니다(예: 원격 분기는 "원격"으로 시작합니다).
예:
# This will show all branches (local & remote) that start with my
$ git branch --list 'my*' -a
* my-branch
# Better: the pattern includes the remote
$ git branch --list '*my*' -a
* my-branch
remotes/origin/my-branch
설명서: 깃브런치
이제 사용 가능한 모든 분기에서 두 분기를 비교할 수 있습니다(로컬 두 개 또는 원격 두 개도 비교할 수 있습니다).
저는 ▁the를 비교하고 .my-branch
동기화되어 있기 때문에 출력이 표시되지 않습니다.
$ git diff my-branch remotes/origin/my-branch
참고: 따옴표 없이 지점의 전체 이름을 지정해야 합니다.
또한 로컬을 비교할 수 있습니다.my-branch
떨어진 먼곳로까지master
여기에 출력이 있습니다. 리모컨이my-branch
마스터 분기에 병합되지 않았습니다.
$ git diff my-branch remotes/origin/master
diff --git a/src/controllers/call.controller.js b/src/controllers/call.controller.js
index fd79b98..df3d798 100644
--- a/src/controllers/call.controller.js
+++ b/src/controllers/call.controller.js
@@ -261,7 +261,7 @@ function callController() {
/*
* Function: doCall
[ . . . ]
이렇게 하는 거예요.
# To update your local.
git fetch --all
이렇게 하면 원격에서 모든 항목을 가져오므로 차이점을 확인하면 원격 분기와 차이점을 비교합니다.
# To list all branches
git branch -a
위의 명령은 모든 분기를 표시합니다.
# To go to the branch you want to check difference
git checkout <branch_name>
# To check on which branch you are in, use
git branch
(or)
git status
이제 다음과 같이 차이를 확인할 수 있습니다.
git diff origin/<branch_name>
로컬 분기와 원격 분기를 비교합니다.
을 비교하고 과 같은 .git pull
.
git fetch
git diff FETCH_HEAD
첫 번째 명령은 현재 분기에 해당하는 원격 분기를 파악합니다.에 그 .FETCH_HEAD
두 있는 합니다.그런 다음 두 번째 명령은 해당 참조를 사용하여 현재 분기에 있는 것과 비교합니다.
작업 지점을 개발하도록 하고 로컬 개발 지점과 원격 개발 지점을 구분합니다.이 경우 구문은 다음과 같아야 합니다.
git diff remotes/origin/development..development
또는
git fetch origin
git diff origin/development
파일 이름만 변경된 것으로 차이점을 확인하려면 다음을 사용합니다.
git diff --name-status <remote-branch> <local-branch>
그렇지 않으면 두 분기 간의 모든 차이가 표시됩니다.
git diff <remote-branch> <local-branch>
에는 제경에두번리있습다니이모컨라는 두 번째 리모컨이 있습니다.heroku
그것은 아닙니다.origin
그리고 동기화되지 않았기 때문에 실행하려고 할 때 이 오류가 발생했습니다.git diff master heroku/master
:
fatal: 모호한 인수 'heroku/master': 알 수 없는 수정본 또는 경로가 작업 트리에 없습니다.
은 다른 할 때 아니면 을 접 때 이 이 것 할 시 도 법 다git diff master..heroku/master
:
치명적: 잘못된 수정본 '마스터..헤로쿠/마스터'
은 솔션에서원이명언로시급다니습했에서 원격 이름을 .git fetch
달기전을 git diff
의 경우 경우내:
$ git fetch heroku
$ git diff master heroku/master
git difftool <commit> .
원하는 커밋을 로컬 파일과 비교합니다.마지막 점을 잊지 마십시오(로컬의 경우).
예를 들어 로컬 파일을 커밋과 비교하려면 다음과 같이 하십시오.
git diff tool 1db1ef2490733c1877ad0fb5e8536d2935566341.
(그리고 새로운 커밋과 비교할 필요가 없는 한, 당신은 gitfetch가 필요하지 않습니다.
시도:
git diff origin HEAD
현재 지역 지사의 데이터를 분산하고 싶다고 가정합니다.HEAD
지점에 합니다.그리고 당신이 지역 지점에 있다고 가정하면요.:)
제 마스터 브랜치에 변화가 있는지 궁금합니다...
먼저 지점을 변경해야 합니다(이 지점 아래에 이미 있는 경우에는 이 작업을 수행할 필요가 없습니다!).
git checkout master
다음 명령을 사용하여 마스터 분기에서 수정된 파일을 확인할 수 있습니다.
git status
분기 나열
git branch -a
- 명인이
리모트
- 명인이
차이점 찾기
git diff origin/master
예
git diff 'master' 'testlocalBranch'
WebStorm과 같은 편집기를 사용하는 경우 파일을 마우스 오른쪽 단추로 클릭하고 분기와 비교를 선택한 다음 분기를 입력/선택할 수 있습니다.
이 오류가 계속 발생했습니다.
git diff main origin/master
fatal: ambiguous argument 'main': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
솔루션:해야만 했어요git push
먼저(원격 및 로컬 모두 최신 상태여야 하므로) 다음과 같이 작동합니다.
git diff master origin/master
이것은 꽤 간단합니다.사용할 수 있는 항목:git diff remote/my_topic_branch my_topic_branch
에▁where디my_topic_branch
주제 분기입니다.
여러분이 이미설가보겠다니습정해고다를 origin
원격 저장소로 사용할 수 있습니다.그리고나서,
git diff <local branch> <origin>/<remote branch name>
는 FWIW를 사용이 합니다.--compact-summary
선택.
man git diff
diffstat에서 파일 생성 또는 삭제("새로" 또는 "사라진", 기호 링크인 경우 "+l", 모드 변경("+x" 또는 "-x")과 같은 확장 헤더 정보의 요약을 출력합니다.정보는 파일 이름 부분과 그래프 부분 사이에 배치됩니다.--stat을 의미합니다.
예.
git diff $(current_branch) origin/$(current_branch)
세우다
git config alias.udiff 'diff @{u}'
HEAD@{upstream}을(를) 사용하여 헤드 디핑
git fetch # Do this if you want to compare with the network state of upstream; if the current local state is enough, you can skip this
git udiff
임의 원격 분기를 사용한 디핑
이렇게 하면 제목에 있는 질문("원격 원격")에 대한 답변이 됩니다. "원격"(지점의 업스트림으로 구성되지 않음)과는 차이가 나려면 직접 대상을 지정해야 합니다.다음과 같이 모든 원격 분기를 볼 수 있습니다.
git branch -r
다음과 같이 구성된 모든 원격을 볼 수 있습니다.
git remote show
단일 원격(예: 오리진)에 대한 분기/추적 구성을 다음과 같이 볼 수 있습니다.
git remote show origin
적절한 원산지 분기를 결정하면 일반적인 diff를 수행합니다 :)
git diff [MY_LOCAL] MY_REMOTE_BRANCH
Visual Studio 2019에서는 가져오기만 하면 됩니다.코드를 당기지 마십시오.
이게 제가 한 일입니다.Beyond Compare를 사용할 수 있도록 아래 내용을 .gitconfig 파일에 추가했습니다.
File location: C:\Users\[username]\.gitconfig
아래에 추가됨
[diff]
tool = bc
[difftool "bc"]
path = c:/Program Files/Beyond Compare 4/bcomp.exe
명령 프롬프트를 열고 작업 디렉토리로 이동합니다.로컬 dev 브랜치와 원격 dev 브랜치를 비교하기 위해 아래를 제공했습니다.
git difftool dev origin/dev --dir-diff
이렇게 하면 Beyond Compare가 열리고 파일이 서로 다른 디렉토리가 열립니다.변경 사항이 없으면 Beyond Compare가 실행되지 않습니다.
언급URL : https://stackoverflow.com/questions/1800783/how-to-compare-a-local-git-branch-with-its-remote-branch
'programing' 카테고리의 다른 글
열거형 ObjectsUsingBlock 대 . (0) | 2023.05.04 |
---|---|
이클립스의 모든 코드 블록을 축소할 수 있는 방법이 있습니까? (0) | 2023.05.04 |
STDOUT의 n번째 줄을 가져오는 명령 (0) | 2023.04.29 |
WPF 트리 보기에서 항목을 프로그래밍 방식으로 선택하는 방법은 무엇입니까? (0) | 2023.04.29 |
Windows에서 도커 오류: 입력 장치가 TTY가 아닙니다.minty를 사용하는 경우 명령 앞에 'winpty'를 붙여 보십시오. (0) | 2023.04.29 |