hyperskill - Editing the commit 영어 원문
이전에, 우리는 로컬 repository를 생성하는 법, 이 곳에 파일 추가하는 법, 변경 사항을 커밋하는 법을 배웠습니다.
하지만, 변경 사항이 매우 많은데, 그 중 몇 개가 올바르지 않은 것으로 판명된다면 어떻게 할까요?
이러한 경우, 당신은 이러한 변경사항들을 모니터링하고, 고쳐야 합니다.
이를 어떻게 하는지 한 번 살펴보겠습니다.
Monitoring the commit - 커밋 모니터링하기
각각의 commit은 스스로의 고유한 식별자 (해시) 가 있는데,
이 식별자는 숫자와 문자의 string으로 이루어진 형태입니다.
모든 commit과 이들의 ID에 대한 목록들을 보기 위해서, git log
명령어를 사용 할 수 있습니다 :
$ git log
commit ba25c0ff30e1b2f0259157b42b9f8f5d174d80d7
Author: Admin
Date: Fri Sep 18 13:47:20 2020 +0300
new feature complete
commit b10cc1238e355c02a044ef9f9860811ff605c9b4
Author: Admin
Date: Fri Sep 18 14:33:09 2020 +0300
Added content to my_file.txt
commit 09bd8cc171d7084e78e4d118a2346b7487dca059
Author: Admin
Date: Fri Sep 18 14:50:18 2020 +0300
Initial commit
당신이 보다시피, 식별자(해시)는 꽤 길고 어색합니다.
하지만, 이러한 식별자를 다루기 위해 모든 문자열을 복사 할 필요가 없으며,
처음 나타나는 몇 개의 문자로도 충분합니다.
commit의 새로운 일을 보기 위해서, git show
명령어를 사용 할 수 있습니다 :
$ git show b10cc123
commit b10cc1238e355c02a044ef9f9860811ff605c9b4
Author: Admin
Date: Fri Sep 18 14:33:09 2020 +0300
Added content to my_file.txt
diff --git a/my_file.txt b/my_file.txt
index e69de29..b546a21 100644
--- a/my_file.txt
+++ b/my_file.txt
@@ -0,0 +1 @@
+Hello, World!
이 예제는 언제 파일이 조정되었는지, 누구에 의해, 그리고 어떤 종류의 변경사항이었는지 보여줍니다.
새로운 텍스트는 "Hello, world!" 입니다.
두 commit 간에 차이점을 보기 위해서,
그리고 어디서, 언제, 어떻게 변경되었는지 알아내기 위해서,
당신은 git diff
명령어를 사용 할 수 있습니다 :
$ git diff 09bd8cc..ba25c0ff
diff --git a/file.txt b/file.txt
new file mode 100644
index 0000000..e69e29
diff --git a/my_file.txt b/my_file.txt
index e69de29..b546a21 100644
--- a/my_file.txt
+++ b/my_file.txt
@@ -0,0 +1 @@
+Hello, world!
Changing the commit - 커밋 변경하기
지금 우리는 필요한 커밋을 찾고, 다른 커밋과 비슷 할 수 있습니다.
하지만, 만약 commit이 잘못되었고, 바로잡아야 한다면요?
여기 두 가지 가능한 방식이 있습니다.
첫 번째로, 만약 당신이 커밋을 만들었는데, 이게 잘못되었다는 것인 즉시 인지했을 때,
당신은 git commit --amend
명령어를 사용 할 수 있습니다.
이 명령어는 마지막 커밋으로부터 모든 것을 staging area에 추가하고, 새로운 커밋을 만들려고 시도합니다.
따라서, git commit
을 입력 한 후, 위의 명령어를 입력하면 됩니다.
이는 코멘트를 알맞게 고치도록 허용하며,
staging area에 빠진 파일들을 추가 할 수 있게 해 줍니다.
만약 실수를 여러 커밋 전에 만들었고, 이러한 잘못된 변경사항이 벌써 서버에 전달되었다면,
당신에게 필요한 명령어는 git revert
명령어 입니다.
이 명령어는 커밋에서 만들어 진 변경사항을 취소하는 커밋을 생성합니다.
이러한 커밋은 주어진 ID 로 생성합니다 :
$ git revert b10cc123
가장 최근에 서버에 보내진 커밋은 HEAD
를 추가하며 접근하거나,
$ git revert
명령어와 ID 없이 접근 할 수 있습니다 :
$ git revert HEAD
오래된 commit들을 취소할 때, 충돌에 대비하세요.
이러한 충돌은 파일이 또다른 새로운 커밋에 의해 변경되었거나,
더 이상 존재하지 않는 것 처럼 git이 더 이상 라인들을 찾을 수 없어 롤백이 필요 할 때 일어납니다.
부디, 고려 해 보시기 바랍니다.
Commit checkout - 커밋 checkout
잘못된 커밋들을 다룰 수 있는 하나의 방식이 더 있습니다.
바로 git checkout
명령어를 사용하는 겁니다.
만약 당신이 아직 에러가 나지 않는 또 다른 커밋에서 파일을 얻거나,
이미 버그가 고쳐진 커밋에서 파일을 얻고 싶다면, git checkout
을 통해서 파일을 얻을 수 있습니다.
먼저 git checkout
명령어를 작성 하고, checkout 하고자 하는 커밋의 ID를 작성합니다.
그리고 잘못 된 변경사항이 만들어진 파일의 이름을 작성하세요 :
$ git checkout 09bd8cc1 my_file.txt
나중에 Branching에 대해서 말할 때, git checkout
명령어에 대해서 말하겠습니다.
하지만, 이 분야에서는 완전히 다른 콘텍스트로 사용 될 겁니다.
Conclusion - 결론
이번 주제에서 배운 것 들을 요약 해 보겠습니다 :
- 어떠한 커밋들이 만들어졌는지 보기 위해서, 당신은 따라오는 세 가지 명령어들을 기억해야 합니다 :
git log
명령어는 commit의 식별자를 찾아내기 위해 사용합니다.git show
명령어는 식별자로 지정된 커밋을 봅니다.git diff
명령어는 커밋들을 비교하는 데 사용됩니다.
- 커밋을 변경하는 데 사용하는 것은 :
commit --amend
명령어는 당신이 커밋을 만든 직후 즉시 실수 한 것을 알아차렸을 떄 사용합니다.- 서버에 이미 변경사항이 있다면,
git revert <commit ID>
명령어를 사용하거나,
git revert HEAD
를 사용해서 마지막 커밋을 사용 할 수 있습니다.
- 커밋을 캔슬하기 위해서,
git checkout
명령어를 사용합니다.
words to remember
by whom : 누구에 의해 === (단축어 느낌)
try to take it into account : 고려 해 보시기 바랍니다.
errorneous : 잘못된
'Hyperskill - 컴퓨터 CS 및 영어 독해 > Introduction to Git' 카테고리의 다른 글
Walking through directories in the command line - 명령어를 사용해서 디렉토리 이동하기 (1) | 2024.06.14 |
---|---|
Searching with git - Git 에서 검색하는 법 (0) | 2024.06.13 |
SSH - SSH (Secure Shell) 기초 (1) | 2024.06.11 |
IP - IP 프로토콜의 기초 (1) | 2024.06.10 |
Cherry picking and checkout options - Cherry pick 명령어와 checkout 옵션 명령어의 기초 (1) | 2024.06.09 |