:
$ git clone https://github.com/mushorg/glutton
$ cd glutton
그냥 만들어 내 원격 이름은 당신과 같이 :
$ git remote rename origin upstream
이미 로컬 변경 사항이 있기 때문에
$ git fetch upstream pull/62/head
$ git checkout FETCH_HEAD
당신은 분명,이 단계가 필요하지 않을 :
그럼 난 당신의 PR를 가져옵니다.
$ git log --oneline master..
cdbca37 Merge branch 'master' of https://github.com/HashCode55/glutton
b37aafd SMTP responses fixed and random wait time added
f25198e supports random wait time for response
4cfcc1d random removed
f2bfed7 refactor
da3dbdb refactor
3bfb62c removed rand function
1bb8a43 SMTP responses fixed
088f6df merged
a383e09 Revert "Revert "removed""
f1bb1c2 Revert "removed"
97bac3f removed
97a0408 Changes
몇 가지 밖으로 뛰어 :
- 하는 당신은 아마 더 일을 찾을 수
그냥 내가 당신이 같은 일을 찾고 있어요 확인하기 위해, 나는 다음과 같이 변경 참조 자신의 master
지점이 아닌 지사 지점에서 작업하는 경우 관리가 용이합니다. 즉, 변경하기 전에 git checkout -b my-spiffy-feature
으로 시작하십시오. 업스트림에 정기적으로 참여하게된다면 master
브랜치가 어떤 시점에서 업스트림 master
브랜치의 상태를 항상 반영하면 가장 편리합니다. 로컬 마스터 브랜치를 간단하게 git pull upstream master
으로 업데이트 할 수 있기 때문입니다.
- 기능 분기에 코드 병합을 피하십시오. 업스트림 변경 사항을 통합해야하는 경우 정기적으로
upstream/master
에 rebase하십시오.
- 지사 지점에서 되돌리기 커밋을 생성하지 마십시오. 그냥
git reset
을 사용하십시오.
위의 단계를 수행했다면이 점에서 모든 갈등과 복잡성을 피할 수 있습니다.
아마도 상류 master
지점에 다시 현재 분기를 재설정하여 시작되는 모든 변경 스쿼시하는 가장 쉬운 방법 :이 저장소를 재설정합니다
$ git reset upstream/master
하지만 하지 작업 디렉토리에 upstream/master
분기의 상태. 작업 디렉토리의 상태를 수정하지 않기 때문에 모든 변경 사항은 유지되지만 커밋 기록은 보존되지 않습니다. 이 시점에서, 우리는 다음을 참조하십시오
$ git status
[...]
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: app/server.go
modified: smtp.go
no changes added to commit (use "git add" and/or "git commit -a")
이제 우리는 새로운 커밋을 만들 수 있습니다
$ git add -u
$ git commit
는 이제 하나의 상류
master
지점의 상부에 커밋합니다. 그런 다음 자신의
master
브랜치에 강제로 푸시하면 PR이 업데이트됩니다.
(NB : 변경 사항을 잃어 버리거나 그와 같은 것을 잃어 버릴 까봐 걱정되는 경우 새 분기에서 작업하거나 작업 디렉토리의 로컬 복사본을 만들어 대신 작업하십시오.)
Github에는 sqashing 옵션이 있습니다. –
@ TusharKotlapure이 옵션은 저장소의 소유자 만 사용할 수 있습니다. – hashcode55