[git] Github TIL

Github TIL

1. TIL ?

  • TIL은 Today I Learned 의 줄임말로 개발자 사이에서 매일 자신이 학습한 내용을 commit(기록)하는 것
  • github, bitbucket, gitlab과 같은 원격 저장소에서 제공하는 1commit - 1grass 의 흥미 요소 제공

2. TIL 세팅

(1) Git으로 프로젝트 관리 시작 : git init

$ git init

(2) Commit을 위한 Staging : git add

$ git add [파일 이름] # .은 모든 변경 사항을 staging area로 올림

(3) 버전 관리를 위한 스냅샷 저장 : git commit

$ git commit -m "커밋 메시지"

(4) 원격 저장소 정보 추가 : git remote

$ git remote add origin [github 원격 저장소 주소]

(5) 원격 저장소로 코드 git push

$ git push origin master

(6) 그 외 명령어

$ git status
$ git log
$ git config --global user.name "Jaegu Kang"
$ git config --global user.email "kjaegu9771@naer.com"

3. README.md

원격(remote) 저장소(repository) 에 대한 정보를 기록하는 마크다운 문서. 일반적으로 해당 프로젝트를 사용하기 위한 방법 등을 기재한다.

(1) README.md 파일 생성

$ touch README.md

(2) (자신만의) TIL 원칙에 대한 간단한 내용 추가

(3) 저장 후 버전관리 : add, commit, push

$ git add README.md
$ git commit -m "add README.md"
$ git push origin master

4. 추가 학습 내용 관리

(1) 추가 내용 관리

$ mkdir python

(2) 변경 사항을 저장하고, 원격저장소로 옮긴다.

$ git add .
$ git commit -m "학습 내용 추가"
$ git push origin master

(3) Git bash 한글 깨짐 문제 수정


$ git config --global core.quotepath false

(4) git clone


$ git clone [복사한 주소]

image-20200203093636932

(5) Github A-Z 모든내용


https://parksb.github.io/article/28.html

(6) Github 공동 작업 방법


john A

재구 B

john C

재구 D

  1. 다른 폴더 건드리지 않는다.
  2. 나는 작업을 master 에서 진행하지 않는다. (Master x)
  3. 본인만의 branch 을 만들고 거기에서만 코드 작업을 한다.
  4. 그것들을 한곳에 모아서 Merge request 깃랩에서.. 깃허브에서는 pull request
  5. merge 한다.

image-20200205114427893

  1.    $ git init
    

=> master 가 생성됨

  1. $ git branch
    

    => 현재 브랜치 목록 나옴

  2. $ git branch [브랜치이름]
    

    => 브랜치 만듬

  3. $ git switch [브랜치이름]
    $ git checkout [브랜치이름]
    

    => 해당브랜치 로 이동한다. ( 여기서 작업한다 이제부터 ) 마스터에서 커밋 ㄴㄴ

  4. $ git branch -d [브랜치이름]
    

    => branch 지우기

image-20200205115359864

브랜치(jaegu)에서 작업하고… master 에다가 합친다….

이 과정을 merging 이라고 한다.

merging 전에 무조건 master 로 이동한 후에 합쳐야 한다.

$ git merge [병합할 브랜치의 이름] (master)

Branch => 1회용

$ git switch -c [브랜치이름]
$ git checkout -b [브랜치이름]

=> 브랜치를 만들면서 이동하는 것. ( 만들고 스위치 기능 동시에 함 )

$ git log --oneline
:wq   저장하고 빠져나간다.
$ git push origin jaegu (jaegu)

Git merge 종류

Git Flow ( git 순서 )

image-20200205131758806

- Commit 커밋 날짜 변경

git commit --amend --no-edit --date "Mon 20 Feb 2020 19:17:19 KST"

image-20200505171822732

GIT_COMMITTER_DATE="Wed Feb 16 14:00 2011 +0100" git commit --amend	

공동 작업 순서

  1. mergemasterpull 이후에는 본인 branch 삭제 후, 재생성
  2. 본인의 branch 에서 코드 작업 할 것 ( jaegu 에서 commit 하기 )
  3. masterCommit 하지말 것
  4. 항상 작업 시작전에 본인의 branch 확인하기 (jaegu)
  5. 위의 작업들 반복

gitignore 적용하기

  1. 터미널 로 마스터폴더 최상위 디렉토리로 들어간다.
  2. vim .gitignore 를 친후에 i 입력모드로 전환 후에 .DS_Store 입력 ( Mac 기준 )
  3. esc 를 쳐서 입력모드를 벗어난 뒤 :wq 저장 후 나가기
  4. gitignore 파일에 .DS_Store 파일은 무시하라고 만들었음
  5. git rm -r --cached . 를 쳐서 캐시를 다 삭제해주고
  6. git add .다시 모두 등록
  7. git commit -m "gitignore 적용" 으로 커밋
  8. git push origin master 푸쉬시키기
  9. 그럼 이제 .DS_Store 확장자는 더이상 푸시되지 않는다. ( 맥 기준 )
git rm -r --cached .
git add .
git commit -m "clear git cache"
git push origin master

git reflog

image-20200407123935964

git log –oneline