Giit 명령 입문:rebase(-i,drop, 그 5, 왜 #B를 수정해야 합니까?)"21회"
제목과 같이 drop A는 왜 B를 수정해야 합니까?그리고 같은 내용은dd,commiit가 필요하기 때문에 일반적으로 두 번의 시간입니다.(쓴웃음) 그리고 다른 내용을 더 수정했다면 이번에 B와 C가 완성됐고, 이어 C와 D가 염주 연결로 수정 제출을 요청했다.또한git rebase--skip을 실행한 후 B는 사라졌습니다.drop을 원하는건 분명히 A뿐인데 B로 사라졌는데 이 조작도 이해하기 어려운데~ 어쨌든 처리 패턴이 늘어나서 정말 복잡하고 이상해요.아무래도 중도drop은 실제에서 보기 드문 상황에서 관건적인 변경을 강요당하는 장면에서 사용하는 비법으로 여겨질 거예요!(대소)
이렇게 말하지만 여기서 열심히 공부하면 이해가 깊어지는 느낌이 들기 때문에 더욱 깊이 실험을 반복하겠습니다!
다음 기사는 이쪽부터!
git 본가의 정보는 여기서부터 시작!
기본적으로git는 관리 차별에 주의해야 합니다!
음, 몇 번 나왔지만 차등 관리라 A drop이면 1st와 B 사이가 완전히 이탈되기 때문에 1st와 A, A와 B의 차등 관리는 일관성을 얻지 못하죠.그리고 B의 내용이 "#B"와 같으면 1st와 B 사이의 차별 정보가 재설정되어 순조롭게 완성됩니다!아마 그 부분이git방면에서 자동으로 처리되지 않을 거예요. 무슨 이유가 있죠.
#B 이외에 수정 후 C와 병합
이쪽 동작도 갑자기 얼굴을 내밀 수 있다.차분 관리를 하고 있기 때문에 이전 제출서를 고쳐 쓰면'아니면, A도drop에 의해'자신의 제출도 수정하지 않으면 과거와의 일치성도 없어지지 않겠죠.응, 원래 서류를 기초로 해서 지금 있어.기본적으로 친자관계~ 부모의 성이 바뀌면 아이도 바뀐다.이런 관계를 관리하는 것이git 자체이기 때문이다.따라서 B가 바뀌면 C도 바뀐다.그래서 연쇄반응을 하는 거겠지.
"#B"를 제외하고 C와 "#C"는 같으면 됩니다!
따라서 B를 변경한 후 이번에 B와 C가 합병되기 때문에 C와'#C'의 내용은 이전과 같고 만약에dd,commiit가 있다면 C와 D의 조합은 발생하지 않을 것이다.
하치
메모
README.md
업데이트
설명
c0f998d
1st
# rebase
-
-
0fa830d
A
# A
drop 제거
-
f8b5ccd
B
# B
# B+
B와 C 사이에서 완벽한 일이 일어났다!
2d138a2
C
# C
# C
여기는 변경 안 해요.
cb468d1
D
# D
-
아무 일도 일어나지 않아!
그럼 실제로 이 동작을 해 보세요!
1~4까지 처리!
$ git rebase --root -i
// Aをdrop して、Esc + wq
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
error: could not apply f8b5ccd... B
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply f8b5ccd... B
$ git log --oneline --reverse
c0f998d (HEAD) 1st
// # B+ と編集する!
$ vi README.md
$ cat README.md
# B+
$ git add README.md
$ git commit -m "B+"
[detached HEAD a690765] B+
$ git log --oneline --reverse
c0f998d 1st
a690765 (HEAD) B+
5~8의 처리!
$ git rebase --continue
// 今度は、BとCでコンフィクトが発生!
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
error: could not apply 2d138a2... C
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 2d138a2... C
$ vi README.md
// # C と編集する!・・・前と同じ内容です。
$ cat README.md
# C
$ git add README.md
$ git commit -m "C"
[detached HEAD 5039c01] C
1 file changed, 1 insertion(+), 1 deletion(-)
$ git log --oneline --reverse
c0f998d 1st
a690765 B+
5039c01 (HEAD) C
$ git rebase --continue
Successfully rebased and updated refs/heads/main.
$ git log --oneline --reverse
c0f998d 1st
a690765 B+
5039c01 C
ebb1ab2 (HEAD -> main) D
다음은 1st와 B, 완성 후 모든 skip
$ git rebase -i --root
// Aをdrop して、Esc + wq
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
error: could not apply f8b5ccd... B
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply f8b5ccd... B
// 1stとBでコンフィクト --skip実行!
$ git rebase --skip
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
error: could not apply 2d138a2... C
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 2d138a2... C
// 今度は、1st と Cのコンフィクト、マージエラー!
$ cat README.md
<<<<<<< HEAD
# rebase
=======
# C
>>>>>>> 2d138a2... C
// --skip実行!
$ git rebase --skip
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
error: could not apply cb468d1... D
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply cb468d1... D
// 今度は、1st Dのコンフィクト、マージエラー!
$ cat README.md
<<<<<<< HEAD
# rebase
=======
# D
>>>>>>> cb468d1... D
// --skip実行!
$ git rebase --skip
Successfully rebased and updated refs/heads/main.
// 結果、1stのみとなる。
$ git log --oneline --reverse
c0f998d (HEAD -> main) 1st
요약: 첫 번째
git는 차분 관리이기 때문에drop이나edit의 경우 친자관계의 재구성, 파일의 내용이 같아도dd,commiit로 재설정해야 한다.또한--skip이면 그 제출을 생략할 수 있습니다.그 동작은drop과 같다.말하자면, 이 지령을 사용하는 것은 보기 드문 상황이다.다만, git의 구조를 이해하는 것은 좋은 계기가 될 것 같습니다.(^^;;
요약 2
A를 drop으로 삼는다면 B의 입장에서는 A=부모님이 갑자기 돌아가신 것과 마찬가지로 그 부모님의 1st=가 새로운 부모님이라고 생각한다.그러나 1st와 A 파일의 차이가 달라 복합 오류가 발생했다.따라서 같은 내용이지만 1st와 B의 차별 정보가 업데이트되어 부자관계를 무사히 설정하면 완성!지금 이렇게 해명합시다![3]
다음 과제
에디트에서 B=자, C=손, D=증손의 변화, 그리고 에디트에서 B=자, C=손, D=증손의 변화를 해보고 싶다!
그럼, 이번엔 여기까지 수고하셨습니다!
각주
초기 상태로 돌아가려면 git reflowg+git reset-hard[해시 값]↩︎을 선택합니다.
drop은 픽을 drop으로 변경하는 것 외에 줄을 직접 삭제하는 것도 마찬가지다.↩︎
이것은 내가 스스로 공부하는 과정이다.잘못했을 수도 있으니 탓하지 마세요!↩︎
Reference
이 문제에 관하여(Giit 명령 입문:rebase(-i,drop, 그 5, 왜 #B를 수정해야 합니까?)"21회"), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/shiozumi/articles/4c1f2260f886ad텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)