특정 커밋까지 당김
나는 하고 싶습니다.git pull
특정한 약속이 있을 때까지만요
A->B->C->D->E->F (Remote master HEAD)
그러니까 내가local master
는 HEAD를 .B
그리고 나는 까지 당기고 싶습니다.E
해야 합니까?어떻게 해야 하나?
이것은 특정 커밋을 끌어내는 것이 아니라 특정 커밋으로 끌어 올리는 것입니다.
git pull
지나지 않습니다.git fetch
에 뒤에git merge
그래서 당신이 할 수 있는 것은
git fetch remote example_branch
git merge <commit_hash>
먼저 원격 저장소에서 최신 커밋을 가져옵니다.이는 로컬 지점에 영향을 미치지 않습니다.
git fetch origin
그런 다음 원격 추적 지점을 확인하고 커밋을 확인하기 위해 비트 로그를 수행합니다.
git checkout origin/master
git log
병합할 커밋의 커밋 해시(또는 처음 ~ 5자까지만)를 가져와 해당 커밋을 마스터로 병합합니다.
git checkout master
git merge <commit hash>
또한 최신 커밋을 끌어다가 원하는 커밋이 있을 때까지 실행 취소할 수 있습니다.
git pull origin master
git reset --hard HEAD~1
원하는 분기로 대체합니다.
git 로그를 사용하여 되돌릴 커밋을 확인합니다.
git log
개인적으로, 이것은 저에게 더 효과적이었습니다.
기본적으로 이 작업은 최신 커밋을 풀어서 수동으로 커밋을 하나씩 되돌리는 것입니다.git log를 사용하여 커밋 기록을 확인합니다.
좋은 점:광고대로 작동합니다.커밋 해시를 사용하거나 불필요한 분기를 풀할 필요가 없습니다.
나쁜 점:커밋을 하나씩 되돌려야 합니다.
경고: 로컬 변경 내용을 모두 커밋/저장합니다. 변경 내용이 손실될 수 있습니다.자신의 책임을 지고 사용하세요!
이것은 나에게 도움이 됩니다.
git pull origin <sha>
예.
[dbn src]$ git fetch
[dbn src]$ git status
On branch current_feature
Your branch and 'origin/master' have diverged,
and have 2 and 7 different commits each, respectively.
...
[dbn src]$ git log -3 --pretty=oneline origin/master
f4d10ad2a5eda447bea53fed0b421106dbecea66 CASE-ID1: some descriptive msg
28eb00a42e682e32bdc92e5753a4a9c315f62b42 CASE-ID2: I'm so good at writing commit titles
ff39e46b18a66b21bc1eed81a0974e5c7de6a3e5 CASE-ID2: woooooo
[dbn src]$ git pull origin 28eb00a42e682e32bdc92e5753a4a9c315f62b42
[dbn src]$ git status
On branch current_feature
Your branch and 'origin/master' have diverged,
and have 2 and 1 different commits each, respectively.
...
이것은 28 eb00, ff39e4, 그리고 이전의 모든 것을 당겼지만, f4d10ad는 당기지 않습니다.pull --rebase를 사용할 수 있으며 gitconfig에서 pull 설정을 준수합니다.이것은 기본적으로 28eb00을 분기로 취급하기 때문에 작동합니다.
내가 사용하고 있는 Git 버전의 경우, 이 메서드에는 전체 커밋 해시가 필요합니다. 약어나 별칭은 허용되지 않습니다.다음과 같은 작업을 수행할 수 있습니다.
[dbn src]$ git pull origin `git rev-parse origin/master^`
저는 이 동영상에서 업데이트된 답변을 찾았습니다, 수락된 답변은 저에게 효과가 없었습니다.
먼저 다음을 사용하여 git의 최신 보고서를 복제합니다(아직 복제하지 않은 경우).git clone <HTTPs link of the project>
SSH ) 그 (SSH 사용) "욕망"을 사용하여 desire 합니다.git checkout <branch name>
.
명령어 사용
git log
최신 커밋을 확인합니다.특정 커밋의 샬을 복사합니다.그런 다음 명령을 사용합니다.
git fetch origin <Copy paste the shal here>
Enter 키를 누른 후에 키를 누릅니다.이제 명령을 사용합니다.
git checkout FETCH_HEAD
이제 특정 커밋을 로컬에서 사용할 수 있습니다.모든 항목을 변경하고 다음을 사용하여 코드를 푸시합니다.git push origin <branch name>
이상입니다.참고용으로 비디오를 확인할 수 있습니다.
특정 커밋 코드를 새 분기로 풀링하려면 다음 명령을 사용할 수 있습니다.
git checkout -b <new_branch_name> <commit_hash>
분기에 커밋을 병합하는 경우 모든 기록을 수집해야 합니다.
관찰:
git in.//Users/dfarrell/git/demo/.git/의 빈 Git 저장소를 초기화했습니다.echo 'a' > 글자git 추가 편지git commit -m '초기 문자'[master(root-commit) 6e59e76] 이니셜 레터파일 1개 변경, 삽입 1개 (+)모드 100644 문자 만들기에코 'b' >> 레터git 문자 추가 & & git 커밋 -m '문자 추가'[master 7126e6d] 문자 추가파일 1개 변경, 삽입 1개 (+)echo 'c' >> 편지; git 추가 편지 &&git 커밋 -m '편지 추가'[master f2458be] 문자 추가파일 1개 변경, 삽입 1개 (+)echo 'd' >> 편지; git 추가 편지 &&git 커밋 -m '편지 추가'[master 7f77979] 문자 추가파일 1개 변경, 삽입 1개 (+)에코 'e' >> 레터; git 추가 레터 &&git 커밋 -m '레터 추가'[master 790ead] 글자 추가하기파일 1개 변경, 삽입 1개 (+)깃 로그commit 790eade 367b0d8ab8146596cd7c25fd895302a저자: 댄 파렐날짜: 7월 16일 목요일 14:21:26 2015-0500 문자 추가 커밋 7f77979efd17f277b4be695c559c1383d2fc2fc27저자: 댄 파렐날짜: 7월 16일 목요일 14:21:24 2015-0500 문자 추가 commit f2458bea7780bf09fe643095dbae95cf97357cc저자: 댄 파렐날짜: 7월 16일 목요일 14:21:19 2015-0500 문자 추가 commit 7126e6dcb9c28ac60cb86ae40fb358350d0c5px저자: 댄 파렐날짜: 7월 16일 목요일 14:20:52 2015-0500 문자 추가 commit 6e59e7650314112fb80097d7d3803c964b3656f0저자: 댄 파렐날짜: 7월 16일 목요일 14:20:33 2015-0500 이니셜 레터git checkout 6e59e76503114112fb80097d7d3803c964b3656fgit checkout 7126e6dcb9c28ac60cb86ae40fb358350d0c5px참고: '7126e6dcb9c28ac60cb86ae40fb358350d0c5fad'를 확인하십시오. '헤드 분리' 상태입니다.주변을 둘러보고 실험적으로변경하고 커밋하면 이 작업에서 수행한 커밋을 취소할 수 있습니다.다른 체크아웃을 수행하여 분기에 영향을 미치지 않고 상태를 표시합니다. 생성한 커밋을 유지하기 위해 새 분기를 생성하려는 경우체크아웃 명령과 함께 -b를 다시 사용하여 (지금 또는 나중에) 그렇게 합니다.예: git checkout -b new_build_name HEAD는 7126e6d에 있습니다...문자 추가git checkout - b B 7126e6dcb9c28ac60cb86ae40fb358350d0c5fad새 지점 'B'로 전환됨깃풀 790 에이드 367b0d8ab8146596cd7c25fd895302afatal: '790eade367b0d8ab8146596cd7c25fd895302a'가 깃 저장소가 아닌 것 같습니다.치명적: 원격 리포지토리에서 읽을 수 없습니다. 올바른 액세스 권한을 가지고 있는지 확인하십시오.저장소가 존재합니다. git merge 7f77979efd17f277b4be695c559c1383d2fc2fc277126e6d 업데이트 중...7f77979빨리 감기편지 | 2 + + +파일 1개 변경, 삽입 2개 »고양이 편지abcd
git log
지역 지점과 다른 지점 간의 차이를 확인합니다.
git log
git merge cuY2324X
그리고나서git merge
특정 커밋에 코드를 적용하고 최소 6자리 이상의 커밋을 사용할 다른 지점에 체크아웃하여 특정 커밋 또는 특정 커밋
단순하고 간단함
git pull origin <Commit-hash>
언급URL : https://stackoverflow.com/questions/31462683/git-pull-till-a-particular-commit
'programing' 카테고리의 다른 글
import pymono로 인해 'ImportError: cannot name BSON'이 발생합니다.당신은 어떻게 수입 오류를 고칩니까? (0) | 2023.07.10 |
---|---|
PyPy가 표준 Python에 포함되지 않은 이유는 무엇입니까? (0) | 2023.07.10 |
페이스북 앱의 Oauth Redirect URI는 어디에서 설정합니까? (0) | 2023.07.10 |
캐시를 사용하도록 설정한 경우에만 Wordpress에서 찾을 수 없는 파일을 반환함 (0) | 2023.07.10 |
분리된 HEAD 상태에서 생성된 Git 커밋은 어떻게 됩니까? (0) | 2023.07.10 |