Home Git 과 Github
Post
Cancel

Git 과 Github

원격 저장소와 연결

  • Github에서 Newrepository를 만들때 빈 저장소로 만들었다면
1
2
3
4
5
6
7
8
git init
git remote add origin https://github.com/{username}/{reponame}.git 

# commit을 만들어준다.
touch README.md
git add README.md
git commit -m "docs: Create README.md" 
git push -u origin master
  • Github에서 README.md 등 파일이 있는 저장소의 경우
  • 작업 폴더를 만들고 싶은 위치에서 클론을 실행
1
git clone https://github.com/{username}/{reponame}.git

Commit Convention

  • commit은 동작 가능한 최소단위로 자주
  • 해당 작업 단위에 수행된 모든 파일 변화해 당 commit에 포함되어야 함
  • Open Source Contribution은 영어로 작성
  • prefix를 사용하여 한눈에 커밋의 용도를 알기 쉽게 한다
  • 50자 이내로 요약하여 작성한다
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    "feat: features"
    "docs: documentations"
    "conf: configurations"
    "test: test"
    "fix: bug-fix"
    "refactor: refactoring"
    "ci: Continuous Integration" 
    "build: Build"
    "perf: Performance"
    

Shell Command

  • 디렉토리를 이동하거나 만드는 등 터미널에서 사용
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
32
33
34
35
# 디렉토리이동
cd Documents/
cd ..

# 디렉토리 생성

mkdir name

# 현재 경로 확인
pwd

# 파일 생성
touch readme.md

# 파일 이동, 파일명 변경
mv readme.md bin/
mv readme.md ./README.txt

# 파일 복사
cp readme.md bin/

# 파일 제거
rm README.txt

# 폴더 제거
rm -rf bin/

# 시스템 모드 변경 
chmod 750 readme.md

# 파일 출력
cat readme.md

# 파일 편집
vi readme.md

Vim Command

  • 자주 사용하는 명령어
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
h : left
j : down
k : up
l : right

i : insert mode 
v : visual mode
ESC : back to normal mode 

d : delete
dd : delete a line 
p : paste

y : copy (aka yank) marked text 
yy : copy a line 

u : undo a - append
A : append from end of line 

H : move to the top of the screen 
L : move to the bottom of the screen

:set nu : set line number
:set nonu : unset line number
:q : quit, won't work in case of unsaved changes
:wq : save and quit

Branch 관리

Git 기본 명령어와 위의 내용을 바탕으로 이하의 작업이 가능하다.

  1. 로컬 혹은 원격 저장소 생성
  2. 로컬저장소와 원격저장소의 연결
  3. 파일 생성 및 commit
  4. push 혹은 pull 을 통한 상태 관리

새로운 가지

  1. git branch 명령어로 만든다
  2. main에서 추가로 만들어지는 가지가 생긴다
  3. 원본과 별개로 기능 개발을 테스트해 볼 수 있다

Pull request

  • 새로운 branch를 만들고 개발 사항을 개발, commit을 해준다
  • 원격 저장소에 push해준다
  • pull request : main ← 새로운 branch를 해준다
  • 변경사항에 문자가 없다면 merge 해준다
  • 로컬 저장소에서 main을 pull 해온다

Conflict

발생 원인

  • main과 branch에서 같은 라인의 내용이 서로 상이할 때 발생한다
  • conflict가 발생하면 충돌한 내용을 파일에 보여준다
  • 어느 내용을 선택하거나 적절히 조합하여 저장한다
  • 충돌을 해결할 수 있다

보통의 경우 원격과 로컬 사이에 충돌이 발생할 수 있다

  1. git fetch로 원격의 내용을 가져온다
  2. FETCH_HEAD와 main의 충돌 내용을 조절한다
  3. merge 후 push 하면 충돌이 해결된 것을 확인할 수 있다
This post is licensed under CC BY 4.0 by the author.