git init

 현재 디렉토리를 git 저장소로 설정

 git status

 현재 add/commit 또는 새로 생성된 파일들의 목록 보기

 

 

 git config --global user.name [user name]

 사용자 이름 설정

 git config --global user.email [user email]

 사용자 이메일 설정

 git config --global --list

 설정값 확인

 

 

 git remote add [remote name] [remote url]

 별명(remote name)으로 원격지 주소 저장

 git remote rm [remote name]

 별명으로 원격지 주소 삭제

 git remote rename [remote name] [new name]

 별명 변경

 

 

 git fetch [remote name]

 원격저장소의 내용 가져오기(branch)

 git merge [branch name]

 브런치의 내용을 가져와 로컬에 병합하기

 git pull [remote name] [localbranch name]

 원격저장소의 내용 가져와 병합하기

 

 

 git add *

 stage에 모든 파일/폴더 추가(.으로 시작 제외)

 git add .

 stage에 모든 파일/폴더 추가(.으로 시작 포함)

 git add [file or folder]

 stage에 특정 파일/폴더 추가

 git reset HEAD [file name]

 stage에 올라간 특정 파일 내리기

 git commit -m [message]

 message와 함께 Head에 올리기

 git push [remote name] [localbranch name]

 로컬브런치 내용을 원격저장소로 업로드

 

 

 git push [server] tag [TAG]

 서버에 tag 전송

 git push [server] --tags

 변경된 모든 tag 전송

 git push [server] [L.B]:[R.B]

 서버에 로컬브런치를 리모트브런치 이름으로 저장

 git tag [TAG name]

 원격저장소에 태그 붙이기

 git tag

 태그 목록 보기

 

 

 git branch

 내가 현재 위치한 브런치 목록 보기

 git branch [branch name]

 원격저장소에 브런치이름으로 브런치 생성

 git branch -a

 모든 로컬브런치와 리모트브런치 확인

 

 

 git checkout [branch name]

 다른 브런치로 전환

 git checkout -b [branch name]

 브런치 생성 후 전환

 git checkout -- [file or folder]

 지정한 파일/폴더를 수정하기 이전 상태로 복원

 git checkout [id]

 원격저장소 기준 id에 해당하는 커밋으로 복원

 git checkout -f

 변경된 파일들을 Head의 상태로 복원

 

 

 git clean -f

 workspace에 있는 untracked file 모두 삭제

 

 

 git rm [file or folder]

 해당 파일을 workspace에서 삭제하고 stage에 등록

 git diff

 로컬저장소와 원격저장소의 차이 보기

 git remote

 원격저장소 확인

 git log

 현재까지 commit된 목록 확인


블로그 이미지

망원동똑똑이

프로그래밍 지식을 자유롭게 모아두는 곳입니다.

,

문제상황



위와 같이 commit 진행시 위와 같은 메시지가 뜨면서 실제로 push를 하면 일부 디렉토리가 제대로 repo에 저장되지 않는 문제가 발생.

메시지에서 보이는 client 디렉토리가 제대로 연동되지 않는 현상임.



git status


깃 상태를 조회해보면 마찬가지 메시지를 볼 수 있음.

메시지 중에 

commit or discard the untracked or modified content in submodules

즉, 서브모듈로 뭔가 인식하고 있는 것!!!





1. .git 폴더 확인



find . -name '.git'

find ./ -name '.git'

 find -name '.git'


위 세가지 명령어는 동일한 결과를 보여줌

즉, 현재 위치하는 폴더부터 하위 노드를 모두 찾아가면서 '.git' 이라는 파일이 존재하면 경로를 출력해줌.



많이들 특정 모듈이 어디 설치되어 있는지 알아볼 때

find / -name '알고싶은모듈명'

으로 루트에서부터 검색하는 것 많이 써봤을거임 ㅇㅇ(위사진처럼)



우리는 현재 위치하는 디렉토리의 '.git' 폴더만 사용하고 하위 디렉토리에 있는 '.git' 은 서브모듈로 인식하지 않도록 삭제할 필요가 있는것임..

위와같이 -mindepth 2 를 중간에 옵션으로 쳐주면 자식노드부터 검색함.





2. 하위 .git 폴더 모두 삭제


뭐 일일이 직접 rm -rf 지울파일경로

이렇게 지워도 금방 할테지만 좀더 멋있게 하려면


find ./ -mindepth 2 -name '.git' -prune -exec rm -rf {} +


확인하니 자식노드들의 '.git' 파일들이 모두 지워졌음!





3. git push 실행


이제 안심하고 다시 add > commit > push 를 진행하면 깔-끔



'Git' 카테고리의 다른 글

[Git] 자주쓰는 깃 명령어 모음  (0) 2018.04.13
블로그 이미지

망원동똑똑이

프로그래밍 지식을 자유롭게 모아두는 곳입니다.

,