https://wiki.postgresql.org/wiki/Working_with_Git#Using_git_hooks
나는 내 아이디어를 빨리 테스트하고 싶다(빠른 실패).
그래서 내가 변경한 내용은 모두 로컬 지점에만 적용되었습니다. 그런 다음 다음을 사용하여 새 지점으로 전환합니다.
git checkout -b test1
로컬에서 최신 버전과 원격 버전(마스터 브랜치)을 빠르게 가져와서 새로운 변경 사항을 적용할 수 있습니다.
git Hooks를 사용하여 이를 자동화하는 방법.
https://postgresql.life/post/andrey_borodin/
나는 내가 하고 있는 일이 반패턴이라고 생각한다. $HOME 디렉토리에 postgres0, postgres1, postgres2...postgresE, postgresF, postgres10...이 있습니다. postgresX에서 변경한 내용을 이해할 수 없을 때마다 git clone을 수행합니다.https://github.com/postgres/postgrespostgresX+1.
네, git이 발명된 데는 이유가 있다는 걸 압니다. 그러나 지점의 이름을 지정하려면 최소한 변경 목적에 대한 미묘한 이해가 필요합니다.
기본적으로 새 브랜치를 생성하면 자동으로 최신 리모콘을 얻을 수 있습니다. 하지만 전환하기 전에 이전 브랜치에 커밋이 없으면 이전 브랜치가 손실되나요? (그래서 이런 일이 발생하지 않도록 해야 합니다.)
"git checkout -b"를 사용할 때마다 새 브랜치의 로컬 콘텐츠가 최신 원격 콘텐츠만큼 최신인지 확인하고 싶습니다. (이것은 나중에 내가 뭔가를 변경하거나 뭔가를 망가뜨릴 때 모두 내 잘못이라는 것을 의미합니다.) 또한 이전 브랜치의 변경 사항은 여전히 존재합니다. (저는 이것을 자동화하고 싶습니다).
答え1
채팅 토론 후 우리는 OP의 요구 사항을 명확히 했습니다.
업스트림이 R1, R2 및 R3을 커밋했다고 가정합니다. 로컬 브랜치 1에는 이러한 커밋(R1, R2, R3)과 일부 로컬 커밋 L1 및 L2가 있습니다.
원격(R4)에 또 다른 커밋이 이루어졌습니다.
그런 다음 로컬에서 새 분기(branch2)를 만들고 선택합니다. 문제는 git Hooks를 사용하여 실제로 자동으로 원격지에 비해 Branch2를 최신 상태로 만드는 방법입니다 git fetch
.
이는 git Hooks에는 적합하지 않습니다. 브랜치가 생성될 때 원격지에 연결할 수 있는지 여부를 알 수 없기 때문에 git 별칭에도 적합하지 않다고 말할 수도 있습니다.
어쨌든 필요한 명령 순서는 다음과 같습니다(리모컨을 기존이라고 가정).origin
# get the changes from origin/master
git fetch origin
# If you want a linear history, with the local changes, create the
# new branch
git switch -c branch2
git rebase origin/master
L1+L2와 R4 사이에 편집 충돌이 있는 경우 리베이스에 보고되며 수정해야 합니다.
이렇게 하면 분기1 R1-R2-R3-L1-L2 및 분기2 R1-R2-R3-R4-L1'-L2'가 됩니다.