GIT 썸네일형 리스트형 [git] 특정 폴더만 clone이나 fetch 하고 싶을 때 들어가며 일단 결론적으로 clone 명령어로는 특정 폴더를 가져올 수 없는 것으로 보인다. 아무리 찾아봐도 없었다! git에서는 core.sparseCheckout 옵션을 제공하는데 이것을 이용해서 해결했다. 상황은 프로그램팀 외에 타팀에서 git 저장소의 특정 기능을 이용해야되는데 불필요하게 코드나 파일 접근, 소스 fetch가 필요하지 않기 때문에 일부 폴더만 받을 수 있게 하는 것이다. 해결 예시 계정: elkiss 원격 저장소: localmachine:/usr/local/git/repos/ 특정 폴더: Code/SomeFolder/ git init git remote add -f origin elkiss@localmachine:/usr/local/git/repos/ git config core.s.. 더보기 [git] git error: fatal: index file corrupt 문제 error: bad signature fatal: index file corrupt gitk 체리픽 중 블루 스크린 후에 재부팅을 했는데 위와 같은 에러가 나왔다. 해결 - .git 폴더에 index 파일 제거 - git reset 하지만 해당 방법으로 모두 해결이 되지 않았다. checkout이나 hard reset이 되지 않았으면 아래와같은 에러. error: update_ref failed for ref 'HEAD': cannot lock ref 'HEAD': unable to resolve reference .git\refs\remotes\origin .git\refs\heads 해당 ref 파일들을 모두 제거 후 git fetch 로 해결 더보기 [git] diff patch 만들기 들어가며 협업을 하다보면 코드를 공유해야 되는 경우들이 생기는데 가끔은 remote에 push를 하기엔 조금 애매모호한 녀석들이 있어요. 또는 중간 작업을 전달한다던가 일부 작업 코드를 전달한다던가... 작업량이 많다면 로컬 commit을 모두 묶어 전달할 수 있으나 적은량의 작업이라면 diff로 전달하면 심플하고 좋을때도 있어요. 생성 git diff > some-patch.patch 적용 적용하고자 하는 리포지토리 경로에서 apply를 명령어를 사용하면 됩니다. git apply some-patch.patch 예시 patch 만들기. README.md에 일부 내용 편집해서 some-patch.patch를 만든 상황입니다. RESET을 통해 remote origin으로 돌려버리고 지금 상태가 patch.. 더보기 [git] filename too long 문제 gitk 명령시 해당 에러가 나오고 먹통이 되기도 한다. 원인은 Windows가 예전에 260 자 이상 긴 파일이나 디렉토리를 제대로 지원하지 못 했다고 한다. 관련 REF: https://docs.microsoft.com/ko-kr/windows/win32/fileio/naming-a-file#maxpath 그래서 msys로 컴파일 된 Windows 응용프로그램의 경우 이 예전 API(최대 260자 지원)을 사용하여 발생하는 문제라고 한다. 해결 git config --system core.longpaths true 해당 명령어를 통해 해결할 수 있다. 캐시 삭제 해당 명령어로도 안되서 이곳저곳 찾아봤는데 캐시가 남아있으면 해당 캐시를 제거 해줘야 한다고 한다. 나는 gitk 캐시가 .git 폴더.. 더보기 [git] merge tool setting. kdiff3 kdiff 다운로드 http://kdiff3.sourceforge.net/ 홈페이지 가서 다운로드 받으면 된다. git config 설정 git config --global --add merge.tool kdiff3 git config --global --add mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe" git config --global --add mergetool.kdiff3.cmd '"C:/Program Files/KDiff3/kdiff3.exe" $BASE $LOCAL $REMOTE -o $MERGED' git config --global --add mergetool.kdiff3.trustExitCode false git config .. 더보기 [GIT] Git - fatal: Unable to create 'repos/.git/index.lock': File exists $ git reset --hard origin/repos fatal: Unable to create 'repos/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue. 인덱싱 과정에서 프로세스가 비정상 종료 되면 발생하는 것으로 예상된다. 간단히 .git 폴더에 index.lock 파일을 지워주면 된다.에러 메시지도 다른 git 프로세스가 돌아가지 않으.. 더보기 [GIT] ignore 따로 두기 $ git config --global core.excludesfile "/c/work/.gitignore" 공용 프로젝트의 ignore 만지면 안되니깐 이렇게 해주면 된다.우리팀 똑똑한 수혁군이 알려 준 비기 더보기 [GIT] git remote url 변경하기 상황 회사에서 SSH Key와 계정명을 변경할 일이 생겨서 변경. git fetch가 안 되어서 좀 찾아보게 되었다. fatal: protocol error: bad line length character: 해당 에러가 나면서 fetch가 안 되는 상황인데 remote url에 계정명이 포함되서 그런 것으로 보인다. 이 세팅은 clone 과정에서 세팅되는 것으로 보인다. username@machinename:/usr/git/repos 이런 느낌으로 원격 주소가 잡혀있다. 원격 주소를 보는 명령어 $ git remote -v $ oldName@machinename..변경을 할려면 $ git remote set-url origin **newname**@machinename.. 더보기 이전 1 2 3 다음