git 사용법, 오류가 생길 때 마다 추가

git branch 를 해도 아무런 branch 가 안 나옴

첫 commit 을 안 해줘서 생김
git add . 를 한 후에 commit 을 해야할 것 같은데 그러면 오류나고, 그냥 commit을 하면 해결된다.
$ git commit -m "first commit"

git add 명령어 실행시 해당 오류가 나타났다.
운영체제마다 줄 바꿈 문자열이 다르기 때문에 생기는 현상으로 줄바꿈 방식을 지정해 준다면 문제 해결이 된다.
CR ( \r ) -> 커서를 맨 앞으로 이동
LF ( \n ) -> 커서를 한 줄 아래로 이동
LF ( \n )
유닉스 계열에서 사용 ( macOS, Linux )
"\n" 을 하나만 사용하여 줄 바꿈을 처리
CRLF
윈도우 계열에서 사용
"\r\n" 두 문자를 한 세트로 줄바꿈 처리
플랫폼 간의 협업을 위해서 방식을 지정해 주는 것
$ git config core.autocrlf true
$ git config --global core.autocrlf true
$ git config core.autocrlf input
$ git config --global core.autocrlf input
$ git config core.autocrlf false
Git에서 의심스러운 저장소 환경을 감지했을 때 나타나는 경고,
저장소를 신뢰할 수 있는 디렉토리로 추가해야 작업을 허용합니다. 만약 디렉토리가 Git의 Safe Directory 목록에 없을 경우, 이 경고가 표시되며 작업을 임시로 차단한다.
따라서 오류와 함께 밑에 나오는 코드를 입력해주면 해당 경로가 신뢰할 수 있는 디렉토리에 추가가 되면서 문제가 해결된다.
$ git config --global --add safe.directory [경로]
이런 일의 원인은 .gitignore 파일에 설정하기 전에, 아니면 직접 Github에 올려서 Git이 추적 중 일때 .gitignore 파일에 설정이 되어 있더라도 변경된다면 대상에 들어가게 되는 것이다.
추적 중인 파일 확인
$ git ls-files
혹은
$ git ls-files | grep '찾을 패턴'
추적 중인 파일 제거
$ git rm --cached '제거할 추적중인 파일 혹은 패턴'
이제 깃허브나 깃랩에서 HTTP는 지원하지 않아서 HTTPS 만을 사용한다.
내부 깃랩이라 SSL 무시하는 옵션을 넣어주면 되는데 해킹 공격의 대상이 되므로 추천하지 않음
GIT_SSL_NO_VERIFY=true git clone https://gitlab.example.com/user/repo.git
git config --global http.sslVerify false
git config http.sslVerify false
git add .
git commit -m "커밋 메시지"
git push
(* 참고: 공개된 리포지토리라면 아무 인증 없이 실행되지만 비공개라면 인증이 별도 필요 )
git clone [ 주소 ]
git pull
git clone -b [ 브랜치 명 ] [ 주소 ]
git branch [ 생성할 브랜치 명 ]
git branch 로컬에 있는 브랜치만 확인
git branch -r 원격에 있는 브랜치만 확인
git branch -a 로컬, 원격의 브랜치 모두 확인
git checkout [ 변경할 브랜치 명 ]
git branch -t [원격 브랜치 명] 원격 브랜치를 가지고 오고 해당 브랜치로 변경
git branch -D [ 삭제할 브랜치 이름 ]
브랜치(dev)를 로컬에서 만들고 push 하면 자동으로 업데이트 된다.
브랜치의 첫 푸쉬는 명시를 해주어야 한다.
git push [remote 원격 저장소 이름] [브랜치 이름]
현재 위치한 브랜치에서 다른 브랜치의 수정한 내용 병합
git merge [다른 브랜치 이름]
git remote -v
git remote add [리모트 주소 이름] [추가할 원격 저장소 주소]
git remote set-url [리모트 주소 이름] [변경할 원격 저장소 주소]
git remote remove [리모트 주소 이름]
git remote rename [기존 이름] [변경할 이름]
원격 저장소를 명시하고 브랜치가 없을때
git branch update
# git에 저장된 이름 확인
git config user.name
# git에 저장된 이메일 확인
git config user.email
# 모두 확인 ( 위에 있는게 global, 밑에 있는게 local 계정 )
git config --list
# 전역으로 변경
git config --global user.name "설정할 이름"
git config --global user.email "설정할 이메일"
# 로컬만 변경 ( ** 전역으로 설정된 계정이 있으면 그걸 우선 참조 ** )
git config user.name "설정할 이름"
git config user.email "설정할 이메일"
# git commit 로그 목록
git log
#git 로그 지우기
git reset HEAD~1 # 이렇게 하면 최신 커밋 만 지워지고 바로 직전이 최근 커밋이 된다.
# git reset HEAD~2 를 하면 최신 커밋과 직전 커밋도 지워진다. !!! 주의해야 함 !!!
#git 로그 덮어씌우기
git push --force # 커밋 히스토리가 달라서 그냥 push를 하면 오류가 난다.