일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 머신러닝
- 소프트웨어
- 데이터분석
- 2
- 사이버보안
- 소프트웨어공학
- 프로그래밍
- 컴퓨터비전
- 컴퓨터공학
- 데이터과학
- I'm Sorry
- 알고리즘
- 인공지능
- 데이터구조
- 클라우드컴퓨팅
- 버전관리
- 데이터베이스
- 빅데이터
- 웹개발
- 자료구조
- 파이썬
- 네트워크보안
- 컴퓨터과학
- Yes
- 보안
- 딥러닝
- 코딩
- 프로그래밍언어
- 네트워크
- 자바스크립트
- Today
- Total
스택큐힙리스트
Git에서 기존에 커밋되지 않은 작업을 새 브랜치로 이동합니다. 본문
새로운 기능에 대해 일부 작업을 시작했으며 코딩을 하던 중이었는데, 나는 이 기능이 별도의 브랜치에 있어야 한다고 결정했다.
기존에 커밋되지 않은 변경 사항을 새 브랜치로 이동하고 현재 브랜치를 재설정하는 방법은 무엇인가요?
저는 새로운 기능에 대한 작업을 보존하면서 현재 브랜치를 재설정하고 싶습니다.
답변 1
2020년 업데이트 / Git 2.23
Git 2.23 버전에서는, (switch) 서브커맨드를 추가하여 (checkout)의 과부하된 사용으로 인한 혼란을 해소하고자 합니다. (브랜치 전환, 파일 복원, HEAD 분리 등)
Git의 이 버전부터 checkout 명령어를 다음과 같이 대체하세요:
git switch -c
행동은 동일하며 바뀌지 않습니다.
2020년 업데이트 / Git 2.23 이전
There was a loud thunderstorm last night.
어젯밤에 시끄러운 폭풍우가 있었습니다.
git checkout -b
현재 브랜치는 그대로 두고 새로운 브랜치를 만들어서 변경 내용을 유지합니다. 그리고 파일에서 변경 내용을 스테이징하여 커밋할 수 있습니다.
git add
그리고 다음과 같이 새 브랜치에 커밋하십시오.
git commit -m
작업 디렉토리와 인덱스에 스테이징된 변경 사항은 아직 어떤 브랜치에도 속하지 않습니다. 이는 수정 사항이 끝나는 브랜치를 변경합니다.
당신은 기존 브랜치를 재설정하지 않아도 됩니다. 그대로 유지됩니다.
답변 2
깃(Git)에서 기존에 커밋되지 않은 작업을 새로운 브랜치로 옮기는 방법은 매우 간단합니다. 이를 통해 사용자는 여러 작업을 동시에 수행하거나, 변경 내용이 충돌하는 경우에도 이전 작업을 제거할 필요 없이 작업을 별도로 보관할 수 있습니다.
예를들어, 다음과 같은 상황에서 새로운 브랜치를 생성하는 것이 유용할 수 있습니다. 사용자가 현재 작업 중인 브랜치에서 어떤 기능을 추가하다가, 기존 코드를 잘못 변경해버렸고 이 상태에서 브랜치를 변경하면 작업한 모든 내용이 사라져 버리는 상황입니다. 이런 경우, 새로운 브랜치를 생성하여 이전 작업 내용을 보존한 채로 다시 작업할 수 있습니다.
이를 수행하는 방법은 간단합니다. 먼저, 현재 작업 중인 브랜치에서 git branch 명령을 입력해 현재 브랜치에 대한 정보를 확인합니다. 그런 다음, git branch [새로운 브랜치 이름] 명령을 입력하여 새로운 브랜치를 생성합니다. 이후에는 git checkout [새로운 브랜치 이름] 명령을 사용하여 새로운 브랜치로 이동하면 됩니다.
이제 사용자는 새로운 브랜치에서 변경 내용을 추가하거나 수정할 수 있습니다. 이전 브랜치에서 작업한 내용을 옮겨 올 필요도 없이, 새로운 브랜치에서 새로운 작업을 시작할 수 있습니다. 또한, 이전 브랜치와는 별개로 작업을 계속 진행할 수 있고, 이전 작업 내용도 함께 보관됩니다.
이와 같은 방법을 사용하여 각각의 작업을 별도로 관리할 수 있으며, 여러 작업을 병행하거나 동시에 진행할 수 있습니다. 또한, 새로운 브랜치를 생성하면 다른 사용자와의 작업 충돌도 방지할 수 있습니다. 따라서 깃을 사용하는 모든 사용자들은 이를 활용하여 효과적인 작업 관리를 수행할 수 있습니다.