1. Command
1) 특정 파일이나 디렉토리만 commit 하고자 할 때
$ git commit [some files]
2) 설정되어 있는 git remote url 확인하기
$ git config --get remote.origin.url
$ git remote --v
3) git remote url 변경하기
$ git remote set-url <remote_name> <remote_url>
4) 새로운 git remote 추가하기
$ git remote add {remote name} {repository-url}
5) commit 한 히스토리 보기
$ git log
https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
6) 이전 commit 으로 돌아가기
$git checkout <old commit>
* <old commit> 부분에는 $git log 에서 원하는 commit 이름을 붙여주면 된다.
https://stackoverflow.com/questions/4114095/how-do-i-revert-a-git-repository-to-a-previous-commit
7) remote branch로 checkout 하기
a. remote branch까지 확인하기
$ git branch -a
* master
remotes/origin/HEAD
remotes/origin/master
remotes/origin/v1.0-stable
remotes/origin/experimental
b. remote branch 경로로 checkout 하기
$ git checkout origin/experimental
c. branch name 만으로 다시한번 checkout하면 끝
$ git checkout experimental
자세한 내용은 아래 링크 참조
https://stackoverflow.com/questions/67699/how-do-i-clone-all-remote-branches
8) branch 명 변경하기
$ git branch -M [되고싶은 branch name]
$ git branch -m [현재 branch name] [바꾸고싶은 branch name]
https://kkangsg.tistory.com/83
9) branch 삭제하기
$git branch -d local_branch_name
https://www.freecodecamp.org/news/git-delete-branch-how-to-remove-a-local-or-remote-branch/
10) git 관련 파일들 삭제하기 (git ignore도 삭제되므로 주의하기!!)
rm -rf .git*
https://stackoverflow.com/questions/1213430/how-to-fully-delete-a-git-repository-created-with-init
11) sub module까지 clone하기
$ git clone --recursive 클론하고자 하는 레포지토리 주소
https://nochoco-lee.tistory.com/87
2. Error
1) [rejected] master -> master (fetch first) 에러
기존 데이터가 손실을 막기 위해 push를 제한한 것. 강제 푸쉬하면 해결은 가능
$ git push origin +master
2) fatal: refusing to merge unrelated histories 에러
$git pull origin main --allow-unrelated-histories
로 pull 해주면 되긴 된다. (부작용 없는지 확인 필요)
3) fatal: not a valid object name: 'master' 에러
dev 라는 branch를 새로 생성하려고 하였으나 해당 에러 발생.
찾아보니 한번도 commit 하지 않은 상태에서 branch를 생성하려니 발생한 에러라고 한다.
한번 commit을 한 다음에 branch를 생성해주면 에러 없이 branch 생성이 된다.