일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Linux
- ps
- UI
- react
- frontend
- Git
- PyTorch
- ts
- mongo
- sqlite
- Three
- Express
- backend
- API
- vscode
- js
- html
- CV
- review
- GAN
- PRISMA
- postgresql
- CSS
- ML
- figma
- nodejs
- C++
- python
- SOLID
- DB
- Today
- Total
목록Git (13)
아카이브

두 브랜치를 합치는 과정에서 대상 브랜치의 모든 변경사항이 아니라, 중간 커밋까지만 가져와야 할 때가 있습니다.이 경우 git cherry-pick을 사용하면 특정 커밋만 가져와 병합할 수 있습니다.git cherry-pick [commit id]
Workplace의 작업 상황을 커밋하는 대신, 잠시 저장하고 다른 브랜치로 이동해야 할 때가 있습니다. 이런 경우 git stash를 사용하면 git이 workplace의 내용을 스택 공간(stack)에 따로 저장하게 됩니다. 변경했던 상태를 스택에 저장하면, worplace는 최근 커밋의 상태로 돌아가게 됩니다.git stash스택에 저장한 내역을 확인하려면 다음과 같이 입력하면 됩니다.git stash list스택에 저장한 내역을 다시 적용하려면 다음과 같이 입력하면 됩니다.git stash apply// 또는 n번째 저장 내용 적용git stash apply stash@{n}스택에 저장한 내역을 제거하려면 다음과 같이 입력하면 됩니다.git stash drop stash@{n}스택에 저장한 내역을..

서로 다른 두 브랜치를 합칠 때는 git merge 명령어를 사용합니다.git merge [가져올 브랜치 이름]이 경우, 두 브랜치에서 생성되었던 커밋들은 따로 기록이 되며, merge에 해당하는 커밋이 따로 추가됩니다.하지만 git rebase를 사용하면 merge 커밋을 추가하지 않고도 두 브랜치를 합칠 수 있습니다. 이 경우, base 브랜치가 rebase를 하는 브랜치로 바뀌며, 해당 브랜치의 커밋이 먼저 추가된 후 원래 브랜치의 커밋이 이어서 추가됩니다.git rebase [가져올 브랜치 이름]// 충돌 해결 후git add .git rebase --continue // 충돌 해결 후 rebase를 마저 진행
만약 로컬저장소에서 작업한 commit을 원격 저장소에 push 해 놓았는데, 이를 다시 되돌리려고 한다면 git revert를 사용하면 됩니다.git revert [commit id]단, 이를 사용하면 commit된 사항이 취소되는 것이 아니라, commit한 사항을 다시 되돌렸다는 commit이 추가되는 방식입니다.// 두 번째 줄의 commit을 다시되돌렸다는 commit이 추가됩니다.(HEAD -> master) Revert "wrong commit"(origin/master) wrong commit만약 연속된 여러 개의 commit을 취소하려고 한다면, 다음과 같이 사용하면 됩니다.git revert [첫 commit 바로 이전의 commit id]..[끝 commit id]이후에는 원격 저장소..
로컬환경에서 원격 저장소의 브랜치를 다룰 때는 git remote를 사용합니다. 로컬환경에서는 접근할 원격 저장소를 직접 추가할 수 있는데, 이 때 원격 저장소 주소에 간단하게 이름을 부여할 수 있습니다.git remote add origin [원격 저장소 url]이 경우, 로컬 저장소에서 다루는 [원격 저장소 url]은 origin이라고 불리게 됩니다.upstream로컬 브랜치에서 원격 저장소로의 push는 다음과 같이 실행합니다.git push [원격 저장소 이름] [로컬 브랜치 이름]:[원격 브랜치 이름]만약 원격 저장소에 해당 로컬 브랜치 이름이 존재하지 않으면, 새로 만든 후 그 브랜치에 push 합니다. 이 경우 push나 pull을 할 때마다 저장소 이름과 브랜치 이름을 명시해야 하는 번거로..
한 브랜치에서 다른 브랜치의 내용을 가져와 합치려면 git merge를 사용하면 됩니다.git merge [가져올 브랜치 이름]이 때, commit 메세지가 자동으로 작성되거나, 직접 merge에 대한 commit 메세지를 작성할 수 있습니다. 브랜치를 합치는 과정에서 서로가 다른 내용을 가지고 있다면, 충돌(conflict)이 일어날 수 있습니다. 충돌된 부분은 다음과 같이 표시됩니다.>>>>>> [브랜치 이름]이 부분을 하나의 결과만 나올 수 있게 수정한다면, 충돌이 해소됩니다. 현재 브랜치 내용을 유지할 수도 있고, 가져오는 브랜치 내용으로 대체할 수도 있으며, 아예 새로운 코드로 다시 작성하는 것도 가능합니다. 충돌이 해소된다면, 이후에는 동일하게 해당 merge에 대한 commit 메세지를 작..
Git을 이용해 프로그램의 버전을 관리할 때 용도별로 조금 씩 다른 버전을 개발해야할 때가 있습니다. 예를 들어 한 프로그램에서 테스트를 위해 간단한 기능만 제공하도록 하는 버전을 만들면서도, 실제 사용자 버전을 위해 모든 기능이 정상 작동하는 버전을 동시에 작업해야 할 수 있습니다. 이 때 git을 사용하면 이때까지 작업한 내용은 유지하면서 다른 방향으로 수정할 수 있도록 분기점을 만들 수 있는데, 이를 브랜치(branch)라고 합니다. 모든 브랜치는 최초로 master(Github에서는 main)라고 불리며, 새로운 브랜치는 다음과 같이 만들 수 있습니다.git branch [브랜치 이름]브랜치를 만들어도, 우리는 계속 원래 있던 브랜치에 남아 있게 됩니다. 브랜치를 옮기기 위해서는 다음 명령어를 ..

Head는 현재 작업 중인 브랜치를 가리킵니다. 그리고 브랜치는 일반적으로 최근에 생성한 commit을 가리킵니다. 하지만 이 브랜치가 가리키는 commit 위치를 이전 commit 중 하나로 바꿀 수도 있으며, 그 때 마다 현재 작업중인 workspace의 내용 또한 그 commit에 해당하는 내용으로 바뀝니다. 이를 바꾸려면 git reset 명령어를 사용하면 됩니다.soft/mixed/hardgit reset을 사용하면 저장소는 우리가 지정한 commit id에 해당하는 commit 상태로 돌아가게 됩니다. 여기서 세 가지 옵션을 통해 저장소 외에도 staging area, workspace의 상태도 결정할 수 있습니다.soft저장소만 이전 commit으로 돌아가고, staging area와 wor..