프로젝트/오픈소스컨트리뷰톤체험형_Git활용및Redis
[1주차] Git 기본 명령어
su-mmer
2023. 10. 14. 23:52
728x90
해당 글에서는 깃에 대한 개념은 다루지 않고 명령어만 다룹니다.
1. clone
- Git 저장소를 복사하고 싶을 때 사용합니다.
- 프로젝트의 히스토리를 전부 받아옵니다.
git clone [url]
git clone [<옵션>] [--] <저장소> [<디렉터리>]
clone 명령은 기본적으로 저장소의 main 브랜치를 클론합니다.
clone하여 저장소가 로컬에 복제되었습니다. 디렉토리의 이름은 기본적으로 저장소의 이름과 동일하게 설정됩니다.
디렉토리 명 변경하기
저장소 뒤에 디렉토리 명을 붙여주면 됩니다.
2. branch
- 새 브랜치를 생성합니다.
- 옵션과 함께 사용하여 브랜치를 관리합니다.
git branch # 로컬 저장소의 모든 브랜치 확인
git branch [브랜치명] # 새 브랜치 생성
git branch -a # 로컬과 원격 저장소의 모든 브랜치 확인
git branch -d [브랜치명] # 브랜치 삭제
확인
~/study/ossca-redis-2023/ [main] git branch [16:32:52]
* main
* 표시가 붙은 브랜치가 현재 사용 중인 브랜치입니다.
생성
~/study/ossca-redis-2023/ [main] git branch feature [16:32:56]
~/study/ossca-redis-2023/ [main] git branch [16:33:08]
feature
* main
삭제
~/study/ossca-redis-2023/ [main] git branch -d feature [16:33:54]
feature 브랜치 삭제 (과거 5c5e311).
~/study/ossca-redis-2023/ [main] git branch [16:34:05]
* main
로컬과 원격 브랜치 확인
~/study/ossca-redis-2023/ [main] git branch -a [16:33:14]
feature
* main
remotes/origin/HEAD -> origin/main
remotes/origin/docs
remotes/origin/main
원격 저장소의 브랜치를 로컬로 가져오고 싶을 경우 switch -t를 사용합니다.
3. switch
- 브랜치를 전환합니다.
git switch [변환할 브랜치]
git switch -t [변환할 원격 브랜치]
git switch -c [생성할 브랜치명]
브랜치 전환
~/study/ossca-redis-2023/ [main] git branch [17:11:12]
feature
* main
~/study/ossca-redis-2023/ [main] git switch feature [17:11:15]
'feature' 브랜치로 전환합니다
~/study/ossca-redis-2023/ [feature] git branch [17:11:19]
* feature
main
원격 브랜치로 전환
~/study/ossca-redis-2023/ [feature] git switch -t origin/docs [17:11:22]
branch 'docs' set up to track 'origin/docs'.
새로 만든 'docs' 브랜치로 전환합니다
~/study/ossca-redis-2023/ [docs] git branch [17:11:27]
* docs
feature
main
원격 저장소의 docs 브랜치로 전환하기 위해 -t 옵션을 사용합니다.
로컬에 docs 브랜치가 자동으로 생성되고 switch로 변경됩니다.
브랜치를 생성하고 전환
~/study/ossca-redis-2023/ [main] git switch apple [17:16:45]
fatal: 잘못된 레퍼런스: apple
~/study/ossca-redis-2023/ [main] git switch -c apple [17:16:52]
새로 만든 'apple' 브랜치로 전환합니다
~/study/ossca-redis-2023/ [apple] git branch [17:16:57]
* apple
docs
feature
main
apple 브랜치가 없어서 switch 명령으로 찾을 수 없습니다.
-c 옵션을 사용하여 apple 브랜치를 생성하고 동시에 전환합니다.
4. pull
- git fetch + git merge
- git fetch는 원격의 데이터를 로컬로 가져오기만 합니다.
- 충돌이 발생하면 해결한 후 merge해야 합니다.
git pull
5. add
- git stage에 수정 사항이 있는 파일을 추가합니다. stage 상태의 파일들이 커밋에 추가될 파일들입니다.
git add [stage에 올릴 파일]
stage에 파일 추가
~/study/ossca-redis-2023/ [apple] git status [17:35:30]
현재 브랜치 apple
추적하지 않는 파일:
(커밋할 사항에 포함하려면 "git add <파일>..."을 사용하십시오)
hello.txt
커밋할 사항을 추가하지 않았지만 추적하지 않는 파일이 있습니다 (추적하려면 "git
add"를 사용하십시오)
~/study/ossca-redis-2023/ [apple] git add hello.txt [17:35:33]
~/study/ossca-redis-2023/ [apple+] git status [17:35:50]
현재 브랜치 apple
커밋할 변경 사항:
(use "git restore --staged <file>..." to unstage)
새 파일: hello.txt
git status를 확인하여 추적하지 않는 파일을 확인할 수 있습니다.
git add 명령을 사용하여 해당 파일을 커밋에 포함시킵니다.
git status 명령으로 다시 확인하면 커밋할 변경 사항에 새 파일이 들어가 있습니다.
6. commit
- stage에 파일이 있을 때 커밋을 생성할 수 있습니다.
git commit
git commit [-m] ["commit message"]
커밋하기
~/study/ossca-redis-2023/ [apple+] git commit -m "add hello.txt" [17:36:11]
[apple a6a58a5] add hello.txt
1 file changed, 1 insertion(+)
create mode 100644 hello.txt
커밋 메세지로 "add hello.txt"를 작성합니다.
작성한 커밋은 git log 명령어를 통해 확인할 수 있습니다.
~/study/ossca-redis-2023/ [apple] git log
commit a6a58a529fbb89074ced7af79ed70ab57bac1749 (HEAD -> apple)
Author: su-mmer <heekim987@gmail.com>
Date: Wed Oct 11 17:40:37 2023 +0900
add hello.txt
7. push
- 로컬에 저장된 커밋을 원격 저장소에 저장합니다.
git push
~/study/ossca-redis-2023/ [apple] git push --set-upstream origin apple [17:45:50]
오브젝트 나열하는 중: 4, 완료.
오브젝트 개수 세는 중: 100% (4/4), 완료.
Delta compression using up to 8 threads
오브젝트 압축하는 중: 100% (2/2), 완료.
오브젝트 쓰는 중: 100% (3/3), 289 bytes | 289.00 KiB/s, 완료.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote:
remote: Create a pull request for 'apple' on GitHub by visiting:
remote: https://github.com/su-mmer/ossca-redis-2023/pull/new/apple
remote:
To github.com:su-mmer/ossca-redis-2023.git
* [new branch] apple -> apple
branch 'apple' set up to track 'origin/apple'.
apple 브랜치가 로컬에는 있고 원격에는 없어서 --set-upstream 옵션을 사용하여 원격에 apple 브랜치를 생성하면서 push 합니다.
8. cherry-pick
- 타 브랜치에서 필요한 커밋을 가져올 때 사용합니다. (옮기는 것이 아니라 복사 개념입니다.)
- 브랜치를 통째로 merge하기 보다 커밋 한두 개 정도를 merge하고 싶을 때 유용합니다.
git cherry-pick <HASH>
# cherry-pick 여러개 적용
git cherry-pick <HASH1> <HASH2> ...
728x90