Github commit 시작

Heesu Ahn·2022년 10월 28일
1

git

목록 보기
1/2
post-thumbnail

GitBlog 작성일 : 2022-07-08

GitBlog를 만들었다가 자꾸 오류나서 이사..

Github 가입을 했고, 특정 Repository를 만들었다는 가정하에 terminal이나 git-bash에서 해야하는 작업들을 정리했습니다.

레포를 넣을 디렉토리 생성

$ mkdir Documents/dev
$ cd Documents/dev
$ git init 

git init 명령으로 local repository로서 역할을 시작합니다

git 초기 설정

$ git config --global user.name "anisepy"
$ git config --global user.email "heesu940@gmail.com"
$ git config --global core.editor "vim"
$ git config --global cor.pager "cat"
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"

github 계정명과 계정에 쓰인 이메일을 한줄 한줄 실행 시킵니다. editor로는 vim으로 설정했습니다.

Repository

git clone (repo 주소): repo를 로컬에 복사하면서 연결합니다.

$git status

>>현재 브랜치 main
>>브랜치가 'origin/main'에 맞게 업데이트된 상태입니다.

>>커밋할 사항 없음, 작업 폴더 깨끗함

파일 커밋

$ cd (repo name)
$ touch hello.py

repo가 clone 된 디렉토리로 들어가서 파일을 생성하거나 커밋할 파일을 복붙합니다.

➡️ workspace에 파일 추가

이때 git status 가 이렇게 변경됩니다.

  >>추적하지 않는 파일:
  (커밋할 사항에 포함하려면 "git add <파일>..."을 사용하십시오)
	hello.py

커밋할 사항을 추가하지 않았지만 추적하지 않는 파일이 있습니다 (추적하려면 "git
add"를 사용하십시오)

이때 add - commit - push를 통해 repo에 커밋하게 됩니다.

  • add : 커밋할 파일을 index로 staging한다.
$ git add hello.py

$ git status
커밋할 변경 사항:
  (use "git restore --staged <file>..." to unstage)
	새 파일:       hello.py
만약 이 파일을 add 하지 않으려면
$ git reset HEAD [file] : add 취소, file 이름은 file단위로 취소 할 때만
$ vi hello.py :vim으로 파일 수정
  • commit : vim을 통해 커밋 메시지를 작성한다.
$ git commit 
[main e152740] New file Created : hello.py
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 hello.py

커밋 메시지를 취소해야할 경우

$ git log : commit 목록 확인
$ git reset HEAD^ : commit 취소 unstaged상태로 워킹 디렉터리에 보존
$ git reset —soft HEAD^ :  commit 취소 staged상태로 워킹 디렉터리에 보존
$ git reset HEAD~2 // 마지막 2개의 commit을 취소
$ git reset --hard HEAD^ : commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에서 삭제
$ git commit —amend : commit message 변경
  • push : remote를 통해 github로 커밋한다.
$ git push origin main

오브젝트 나열하는 중: 4, 완료.
오브젝트 개수 세는 중: 100% (4/4), 완료.
Delta compression using up to 8 threads
오브젝트 압축하는 중: 100% (2/2), 완료.
오브젝트 쓰는 중: 100% (3/3), 315 bytes | 315.00 KiB/s, 완료.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/anisepy/first-repo.git
   bb803bb..e152740  main -> main
  • push 한 것을 되돌릴 때

    1. Reflog(브랜치와 HEAD가 지난 몇 달 동안에 가리켰었던 커밋) 목록 확인

      $ git reflog 또는 $ git log -g

    2. 원하는 시점으로 워킹 디렉터리를 되돌린다.

      $ git reset HEAD@{number} 또는 $ git reset [commit id]

    3. 다른 방법
      $ git revert [commit id] 하면 푸시한 것 하나가 삭제된다. 이때 커밋 메시지를 작성하는 vim 창이 뜨며 협업하는 사람들을 위해 메시지를 남기게 된다.

reference

profile
AI로 데이터를 말하는 개발자

0개의 댓글