Skip to content

ohjiwoo123/GitHub-Guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 

Repository files navigation

GitHub-Guide (CLI 기본사용법)

Git의 큰 그림

pull -> push -> commit
git fetch -> git merge Fetch_HEAD -> commit -> push
git pull = git fetch; git merge origin/master

0) 처음 repo 만들고 기본 Add, Commit, Push

…or create a new repository on the command line echo "# cs2dddx" >> README.md

git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/ohjiwoo123/cs2dddx.git
git push -u origin main

…or push an existing repository from the command line

git remote add origin https://github.com/ohjiwoo123/cs2dddx.git
git branch -M main
git push -u origin main

…or import code from another repository You can initialize this repository with code from a Subversion, Mercurial, or TFS project.

1) 기본 사용법

# git 연습을 위한 폴더 생성
cd ~
cd Documents
mkdir git
cd git
mkdir hello-git-cli
cd hello-git-cli

# 현재 폴더에서 git 
# initialized git repository in ~/Documents/git/hello-git-cli/.git
git init .

# .git 폴더가 생긴 것을 확인할 수 있다.
ls -al

# .git 폴더 안에 git과 관련하여 여러 폴더와 파일이 생성된다.
cd .git 
ls

스크린샷 2021-08-09 오후 9 25 40

스크린샷 2021-08-09 오후 9 25 55

2) 명령어 정리

  • (1) git init
    • 현재 폴더를 git 폴더로 초기화한다. (git과 연결된다.)
  • (2) git status
    • git의 현재 상태를 볼 수 있다. (커밋 내역 및 현재 브랜치)
      스크린샷 2021-08-09 오후 9 45 15
  • (3) git log
    • git 안에서의 기록(역사)를 볼 수 있다. (커밋내역 등)
    • 나갈 때는 q 버튼으로 나가면 된다.
      스크린샷 2021-08-09 오후 9 41 43
  • (4) git log --stat
    • 커밋 내역 뿐만 아니라 자세한 커밋 목록까지 볼 수 있다.
      스크린샷 2021-08-09 오후 9 50 39
  • (5) git log -p
    • git log 에서 추가로 이전 커밋에서 어떤 것이 바뀌었는지 보여준다.
      스크린샷 2021-08-09 오후 10 53 18
  • (6) git diff
    • 이전 커밋과의 차이점을 볼 수 있다.
      스크린샷 2021-08-09 오후 10 44 10
  • (7) git reset --hard
    • 현재 파일의 이전의 상태로 돌아간다.
      스크린샷 2021-08-09 오후 10 51 04
  • (8) git revert 일련번호
    • git revert 일련번호를 하게 되면, 해당 일련번호의 commit은 살아있지만, 일련번호의 commit의 내용이 사라지고 새로운 커밋이 생긴다.
      스크린샷 2021-08-09 오후 11 53 58
      스크린샷 2021-08-09 오후 11 54 28
      스크린샷 2021-08-09 오후 11 55 54
  • (9) git checkout f95dcac5d325a57a48b87d7dda27ad4ad4d480ce
    • commit 일련번호의 위치로 버전을 이동한다.
      스크린샷 2021-08-09 오후 10 57 20
      스크린샷 2021-08-09 오후 10 57 41
  • (10) git checkout 브랜치이름
    • 해당 branch로 이동한다. (브랜치가 master일 경우에는 <git checkout master>
      스크린샷 2021-08-09 오후 11 21 14
  • (11) git commit -am "4"
    • add와 commit을 동시에 한다. 적어도 한 번은 add를 하여서 tracked 상태가 되어야 쓸 수 있다.
  • (12) git commit
    • 뒤에 메세지를 안 적고 그냥 git commit만 하는 경우에는 에디터가 뜨면서 직접 여러 줄의 메세지를 편하게 적을 수 있다.
      스크린샷 2021-08-09 오후 11 42 42
      스크린샷 2021-08-09 오후 11 43 33
  • (13) git commit --amend
    • 커밋 메세지를 수정할 수 있다.
  • (14) git config --global core.editor "nano"
    • 원하는 에디터로 설정할 수 있다. nano || vim 등등
  • (15) git branch ooo
    • 그냥 git branch를 하게 되면 현재 branch 목록을 보여주고, git branch 이름을 하게 되면 새로운 브랜치를 만든다.
  • (16) git log --all --graph --oneline
    • 브랜치의 상관관계를 CLI 그래프로 표시해준다.
      스크린샷 2021-08-14 오후 10 22 27
  • (17) git merge ooo
    • 현재 브랜치에다가 ooo브랜치를 합친다. merge를 할 경우 conflict가 일어날 수 있으므로 유의해야한다.
  • (18) git clone URL주소
    • URL주소에 있는 원격저장소(Repository)를 연결한다.(나의 로컬 저장소에 복제한다)
  • (19) git pull
    • 당겨오는 것. 즉 원격저장소에서 로컬저장소로 파일을 끌어온다. pull -> commit -> push
  • (20) git remote
    • git remote를 통해서 현재 연결된 원격저장소의 이름을 보여준다. ex)origin
    • git remote -v를 통해서 현재 연결된 원격저장소의 URL을 보여준다. ex) https://github.com/ohjiwoo123/blahblah.git
    • git remote add origin URL주소 URL주소와 현재 로컬 저장소를 연결시킨다.
  • (21) git push
    • 로컬 저장소에서 원격 저장소로 파일을 보내는 것(업로드).
  • (22) git fetch
    • git pull과 비슷한 개념으로 정확하게 git pull=== git fetch -> git merge FETCH_HEAD와 같다.

Git 관련 Tool 소개

  • (1) p4 merge Tool
    • merge 합칠 때, 도움을 주는 기능. Helix Visual Merge Tool(P4Merge)은 3방향 병합 및 병렬 파일 비교 도구입니다.
  • (2) cherry-pick
    • git cherry-pick임의의 Git 커밋을 참조로 선택하고 현재 작업 중인 HEAD에 추가할 수 있는 강력한 명령입니다. 체리 따기는 브랜치에서 커밋을 골라 다른 브랜치에 적용하는 행위입니다. git cherry-pick변경 사항을 취소하는 데 유용할 수 있습니다. 예를 들어 실수로 잘못된 브랜치에 커밋했다고 가정해 보겠습니다. 올바른 분기로 전환하고 커밋이 속해야 할 위치를 선택하면 됩니다.

git rebase와 merge

  • master branch와 sub branch가 있다고 가정한다.
  • 현재 나는 sub branch에서 작업중 git checkout sub
  • git rebase master 하면 sub가 master 앞으로감.
  • git merge의 경우 git merge

About

GitHub Guide

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published