GDSC 리액트 스터디 2021.10.04
Git에 대해 공부해오기
공부자료 : https://www.youtube.com/playlist?list=PLRx0vPvlEmdD5FLIdwTM4mKBgyjv4no81
c드라이브에 폴더 만들기 ex) Education
명령프롬포트에서 디렉토리 이동하기
cd c:\ Education
git clone 명령을 이용하여 git-tutorial.git 이동하기
git clone https://github.com/woOONi/git-tutorial.git
cd c:\Education\git-tutorial
git add document.txt
git commit -m "Add Text File [document.txt]"
git push
git status : 추가된 파일이나 수정된 파일, commit된 파일이 있는지 확인할 수 있음.
dir : 새롭게 만들어진 폴더가 github에 있는게 불러와졌는지 확인
git checkout : 수정된 파일을 원래 상태로 돌릴 수 있음
git checkout -- my_module.py
git pull : github에 있는 파일 불러오기
git log : 반영된 내용들을 확인할 수 있음.
add된 파일을 reset 시키고 싶다면
git reset my_module.py
git reset --hard 로그번호
: 로그번호 뒤에 일어난 일들을 모두 삭제,Stagin Area 뿐만아니라 working directory에서도 삭제
git reset --soft 로그번호
: HEAD가 가리키는 브랜치를 옮김
git reset --mixed 로그번호
: Stagin Area에서만 사라짐 working directory에서는 삭제되지 않음.
git push -f
git commit --amend
동시에 여러 개발자들이 프로젝트에서 각기 다른 기능을 개발 할 수 있도록 함.
일반적으로 생성되는 브랜치, 배포가 가능한 수준의 안정화된 버전
추후 개발된 것 뒤에 병합
버그 수정하고 먼저 병합
c:\tutorial\git-tutorial>git branch
* master
c:\tutorial\git-tutorial>git branch develop
c:\tutorial\git-tutorial>git branch
develop
* master
c:\tutorial\git-tutorial>git checkout develop
Switched to branch 'develop'
c:\tutorial\git-tutorial>git branch
* develop
master
c:\tutorial\git-tutorial>git add.
git: 'add.' is not a git command. See 'git --help'.
The most similar command is
add
c:\tutorial\git-tutorial>git add .
c:\tutorial\git-tutorial>git commit -m "Add my_module [Mul]"
[develop e08eea6] Add my_module [Mul]
1 file changed, 2 insertions(+)
: 헤드가 develop에 있어서 master에는 반영 안되고 당연히 git에서도 반영 안 됨.
c:\tutorial\git-tutorial>git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
c:\tutorial\git-tutorial>git merge develop
Updating b990b24..e08eea6
Fast-forward
my_module.py | 2 ++
1 file changed, 2 insertions(+)
c:\tutorial\git-tutorial>git branch -d develop
Deleted branch develop (was e08eea6).
c:\tutorial\git-tutorial>git branch
* master
c:\tutorial\git-tutorial>git branch
* master
c:\tutorial\git-tutorial>git branch develop
c:\tutorial\git-tutorial>git branch
develop
* master
c:\tutorial\git-tutorial>git checkout develop
Switched to branch 'develop'
c:\tutorial\git-tutorial>git branch
* develop
master
c:\tutorial\git-tutorial>git add .
c:\tutorial\git-tutorial>git commit -m "Add my_module [Div]"
[develop 5ea0a02] Add my_module [Div]
1 file changed, 3 insertions(+)
c:\tutorial\git-tutorial>git merge develop
Auto-merging my_module.py
CONFLICT (content): Merge conflict in my_module.py
Automatic merge failed; fix conflicts and then commit the result.
def div(a,b):
<<<<<<< HEAD
return a//b
=======
return a/b
>>>>>>> develop
c:\tutorial\git-tutorial>git add .
c:\tutorial\git-tutorial>git commit -m "Add my module [div]"
[master d33eac3] Add my module [div]
c:\tutorial\git-tutorial>git merge develop
Already up to date.
oneline : 한 줄로 커밋내용 출력
format 종류
%h : 해쉬값 출력
%an : 작성자 이름
%ar : 작성날짜
%s : 커밋 주제
c:\tutorial\git-tutorial>git log --pretty=format"%h -> %an, %ar : %s" --graph
* formatd33eac3 -> woOONi, 21 minutes ago : Add my module [div]
|\
| * format5ea0a02 -> woOONi, 33 minutes ago : Add my_module [Div]
* | format601eca7 -> woOONi, 25 minutes ago : Add my_module [Div edit]
* | format253354a -> woOONi, 27 minutes ago : Add my_module [div]
|/
* formate08eea6 -> woOONi, 39 minutes ago : Add my_module [Mul]
* formatb990b24 -> woOONi, 57 minutes ago : Add my_module [Add & Sub]
* format545bdf5 -> woOONi, 60 minutes ago : Add my_module [Add]
* format2fc2b85 -> woOONi, 3 hours ago : Add Text File [documnet.txt]
git archive --format=zip master -o Master.zip
:명령 --포멧형태설정, 브랜치설정, output 이름.
git rebase -i HEAD~3
: 최근 3개의 커밋 수정(-i edit모드 나옴)
수정하고자 하는 커밋을 reword 해서 변경
삭제하고자 하는 커밋을 drop해서 삭제