GIT(17)
-
[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..
2022.06.17 -
[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 로 해결
2022.04.08 -
[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..
2021.06.01 -
[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 폴더..
2019.07.15 -
[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 ..
2019.06.14 -
[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 프로세스가 돌아가지 않으..
2019.01.03