5가지 경우git 명령은 제출한 원자성을 유지하는 데 도움을 줍니다.
예전의 많은 사람들처럼 첫 주가 정보의 눈사태인 것 같아 당황스러웠다.
본고는 내가 초급 소프트웨어 개발자로서의 첫 주와 원자 제출을 더욱 쉽게 관리하기 위해 배운 새로운Git 명령을 되돌아본다.
만약 당신이 이전에 원자 제출을 들어 본 적이 없다면, 당신은 here과 읽을 수 있습니다.본질적으로 원자 제출은 독립된 작업이나 복구 프로그램을 둘러싸고 이루어진다.
이러한 방식으로 작업을 저장하면 다음과 같은 몇 가지 주요 이점이 있습니다.
너의 역사를 추적하다.git log를 사용하면 제출한 기록을 쉽게 볼 수 있습니다.나는 또 여기에 보충하고 싶은 것이 하나 있다. 제출한 메시지로 모든 변경 사항을 기록하는 것은 매우 중요하다. 그것은 너에게 무엇을 했는지, 그리고 왜 그런지 알려줄 것이다.
복습하기 쉽다.만약 당신의 코드가 원자 변화 하나만 주목한다면, 당신의 심사자는 당신의 코드를 더욱 쉽게 이해할 수 있을 것이다.
회복하기 쉽다.코드에 새로운 버그를 도입하면 변경 사항을 복구하고 문제를 복구하기 쉽다.
1. 당신은 막 일에 몰두하여 내용을 추가하는 것을 잊었다는 것을 깨달았다
git log
부터 변경하려는 마지막 제출이 맞는지 확인하십시오.commit 2df06c898ba035a0c0878e4f78032b0bd676f3ad (HEAD -> master)
Date: Sat Feb 13 14:50:27 2021 +0000
Frontend: Created layout for homepage
This is a base on which we will develop the homepage and add
new content.
변경 사항을 git add.
으로 임시 구역에 추가하고 git commit --amend
으로 제출합니다.이렇게 하면 마지막으로 제출한 내용을 새로 추가한 내용으로 덮어쓸 수 있습니다.
만약 당신이 지금
git log
을 만들고 있다면, 당신은 여전히 제출만 하는 것을 볼 수 있습니다.commit 5f7037f6e7e243e178a58b119e56c0b3337cd408 (HEAD -> master)
Date: Sat Feb 13 14:50:27 2021 +0000
Frontend: Created layout for homepage
This is a base on which we will develop the homepage and add
new content.
2.당신은 두 가지 일을 동시에 했지만 각각 하고 싶어요.
git add <file>
을 사용할 수 있지만 더 강력한 옵션이 있습니다.당신의 열쇠는
git add --patch
이거나 아예 git add -p
입니다.이 옵션을 추가하도록 전송하면 파일의 모든 변경 내용이 인덱스에 즉시 추가되지 않고 각 변경 내용을 반복하여 다음과 같이 원하는 작업을 묻습니다.
diff --git a/styles.css b/styles.css
index 23d8732..470d5dc 100644
--- a/styles.css
+++ b/styles.css
@@ -2,4 +2,5 @@
margin: 0;
padding: 0;
box-sizing: border-box;
+ background-color: aquamarine;
}
(1/1) Stage this hunk [y,n,q,a,d,e,?]? y
3. 두 제출을 합치길 원합니다. 이 두 제출은 같은 원자 제출의 일부분입니다.
git log
부터.아래의 예에서 우리는
f2662c5
을 5f7037f
으로 통합하기를 희망한다(예를 들어 마지막 제출을 첫 번째 제출로 통합한다).commit f2662c51cf2f14ccb33907267f1d823ff6b8a678 (HEAD -> master)
Date: Sat Feb 13 16:36:03 2021 +0000
Frontend: added style link to Index.html
This is in order to be able to see the style changes.
commit f84f936e22a0028ad00d3c33771518f23ac192b2
Date: Sat Feb 13 15:29:42 2021 +0000
Frontend: Set up style sheet with default styling
This is a base on which the rest of the homepage will be styled
upon.
commit 5f7037f6e7e243e178a58b119e56c0b3337cd408
Date: Sat Feb 13 14:50:27 2021 +0000
Frontend: Created layout for homepage
This is a base on which we will develop the homepage and add
new content.
기본 작업 재설정을 완료하려면 git rebase -i Head~2
을 입력합니다.이것은 우리가 마지막으로 제출한 색인 위치를 2로 유지하기를 원하기 때문에 HEAD~2를 상호작용식rebase 명령에 전달할 수 있음을 의미한다.
커뮤니케이션 패널을 엽니다. 커뮤니케이션
f2662c5
을 찾고, 단어 pick
을 f
으로 변경하고, 통합할 커뮤니케이션 (예: 5f7037f
) 아래로 이동합니다.pick f84f936 Frontend: Set up style sheet with default styling
f f2662c5 Frontend: added style link to Index.html
# Rebase 5f7037f..f2662c5 onto 5f7037f (2 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# . create a merge commit using the original merge commit's
# . message (or the oneline, if no original merge commit was
# . specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
현재 git log
을 검사하면commit f2662c5
이 더 이상 존재하지 않습니다.4. 귀하의 코드는 이미 심사를 거쳤습니다. 제출에 대한 변경이 필요합니다.
역사상 더 오래된 제출을 수정하려면 기초를 재조정하는 것이 최선이다.
ed57576
을 제출할 때 일부 내용을 변경해야 한다고 가정하십시오.commit e7433f8b9ff28eb819b8740c6692ffb975b426d4 (HEAD -> feature-button, origin/feature-button)
Date: Sun Feb 14 11:53:53 2021 +0000
Frontend: changed border radius value for the button
commit ed57576bf379fd7132eb2338b0be34b71f4a94f2 (main)
Date: Sun Feb 14 11:55:38 2021 +0000
Frontend: added border specifications
commit a429de8e24c1a5a05c7c4b24c599b637a4fce715 (origin/main)
Date: Sat Feb 13 17:15:56 2021 +0000
Frontend: Added button on landing page
이 경우 rebase -i Head~1
을 실행하고 커밋을 편집하기 위해 상호 작용 패널에서 pick
을 변경할 수 있습니다.e e7433f8 Frontend: changed border radius value for the button
# Rebase ed57576..e7433f8 onto ed57576 (1 command)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# . create a merge commit using the original merge commit's
# . message (or the oneline, if no original merge commit was
# . specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
저장한 후 변경을 계속하고 다음을 수행할 수 있습니다.e
git add .
git commit --amend
지점을 원격 저장소로 밀어넣으려면 현재 버전을 교체하기 위해 강제로 해야 합니다.이 용도:
git rebase --continue
.5. 주인이 변했어. 너 지금 충돌했어.
지점 업데이트를 주 노드에 집적하는 방법의 하나는 합병이다.다른 방법은 호스트에서 지점까지의 재기반을 실행하는 것이다.후자의 장점은 깨끗하고 선형적이며 무분별한 제출 역사를 씻어낼 수 있다는 것이다.
최신 버전의 마스터 가져오기 시작:
git push -f origin <feature-name>
git checkout master
분기 체크 인 및 베이스 재설정 수행git pull
git checkout <branch name>
충돌이 있을 경우 유지할 버전을 선택하라는 메시지가 표시됩니다.button {
Accept Current Changes | Accept Incoming Change | Accept both Changes
<<< HEAD (Current Change)
border-radius: 2%;
border: 2px solid red;
background-color: green;
=======
border-radius: 5%;
background-color:green;
>>> 376b235 (Frontend: changed border radius value for the button)(Incoming Change)
}
모든 결합 충돌이 해결되면 수정된 파일을 재데이텀에 추가하고 이 절차를 계속할 수 있습니다.git rebase master
git add .
git rebase --continue
깃이 강해!이렇게 많아서 너는 심지어 그것들의 존재조차 모른다.나는 장면 방법이 내가 Git의 힘을 어떻게 활용하는지 배우기에 가장 적합하다는 것을 발견했다.만약 당신이 더 많은 연습을 하고 싶다면, 나는 당신이 these개의 연습을 하는 것을 건의합니다.
Reference
이 문제에 관하여(5가지 경우git 명령은 제출한 원자성을 유지하는 데 도움을 줍니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/manuelare/5-scenarios-where-git-commands-will-help-you-keep-your-commits-atomic-495p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)