GitBlog 작성일 : 2022-07-08
GitBlog를 만들었다가 자꾸 오류나서 이사..
Github 가입을 했고, 특정 Repository를 만들었다는 가정하에 terminal이나 git-bash에서 해야하는 작업들을 정리했습니다.
$ mkdir Documents/dev
$ cd Documents/dev
$ git init
git init 명령으로 local repository로서 역할을 시작합니다
$ 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으로 설정했습니다.
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에 커밋하게 됩니다.
$ 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으로 파일 수정
$ 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 변경
$ 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 한 것을 되돌릴 때
Reflog(브랜치와 HEAD가 지난 몇 달 동안에 가리켰었던 커밋) 목록 확인
$ git reflog
또는 $ git log -g
원하는 시점으로 워킹 디렉터리를 되돌린다.
$ git reset HEAD@{number}
또는 $ git reset [commit id]
다른 방법
$ git revert [commit id]
하면 푸시한 것 하나가 삭제된다. 이때 커밋 메시지를 작성하는 vim 창이 뜨며 협업하는 사람들을 위해 메시지를 남기게 된다.