[초보용] proxy 환경에서 git 사용하기

제가 다니는 회사를 비롯하여, 몇몇 회사들에는 보안상의 이유로 Proxy서버를 거쳐서 외부와 연결을 하도록 하고 있습니다. Proxy 서버를 거치면서 제가 무엇을 하는지 다 까발려지기에 거부감이 있지만, 회사에서 하는 일에 대해서 회사는 알고 있을 필요가 있다고 생각해 어느 정도는 이해하려고 하고 있습니다. 하지만, 한번씩 Proxy서버 때문에 발목 잡힐 때마다 뒷목을 잡곤합니다. 그 중의 하나가 Git Proxy 설정입니다. Proxy 설정하기 [기본] 설정하는 방법은 간단합니다. CLI에서 다음과 같이 입력해주면 끝입니다. $ git config --global http.proxy "{proxy_host}:{proxy_port}" 이렇게 쉬운 경우만 있다면 좋겠지만, 세상이 그렇게 녹록치 않습니다. ..

[Git] nullSha1:contains entries pointing to null sha1

사용 중인 원격리파지토리를 바꾸기 위해, 기존에 사용 중인 원격리파지토리에서 클론을 받은 후 이사갈 원격 리파지토리에 Push 하려는데, null sha1을 가리키고 있다는 에러를 만났습니다. $ git push origin2 --all Enumerating objects: 3141, done. Counting objects: 100%(3141/3141), done. Delta compression using up to 12 threads Compressing objects: 100% (1207/1207), done. remote: error: object 65465...54654654:nullSha1: contains entries pointing to null sha1 remote: fatal: fs..

Git version 2.28이 발표되었습니다.

오늘 발표된 Git 2.28 버전에서 기능 상으로 크게 달라진 점은 없지만, 지난번에 썼던 글 중 2020/07/22 - https://github.com/github/renaming 과 관련된 기능이 추가되었습니다. 바로 기본 브랜치 이름을 master에서 변경할 수 있는 기능입니다. init.defaultBranch 라는 설정이며 이 값에 정해진 이름대로 브랜치를 생성하게 됩니다. 그럼 먼저 2.28버전으로 업그레이드를 합니다. 그리고 2.28버전으로 업그레이드 된 것을 확인합니다. ( wsl에 설치된 Git은 별도로 업그레이드 해주어야 합니다. ) 아무런 설정을 하지 않고, 리파지토리를 생성하면 예전처럼 master 브랜치가 생성됩니다. 하지만, 새로 추가된 설정에 main이라는 값을 주고 리파지토..

sparse-checkout 실제로 사용가능할까?

어제 올린 글 ( 2020/07/17 - Git에서 디렉토리 일부분만 가져오려면 어떻게 해야되요? )에서 sparse-checkout으로 특정 폴더만 받아올 수 있다는 것을 알았습니다. 그렇다면 그렇게 일부만 받아온 폴더를 실제 활용이 가능할까 궁금했습니다. 다시 말해, "SVN에서 처럼 특정 폴더만 받아왔을 때처럼, 이력관리를 할 수 있을까?" 가 궁금했습니다. 만약 가능하다고 하면, Git에서도 SVN처럼 하나의 리파지토리를 만들어두고, 업무별로 폴더를 나누어 사용할 수도 있을 테니, 수십개의 리파지토리를 사용하지 않아도 될것 같습니다. 가정 일단 제 생각은, "Git의 이력을 저장하는 방식은 스냅샷이나, SVN의 증분을 저장하는 방식 처럼 그렇게 하지 못할 것이다" 입니다만, 해보지 않으면 알 수가..

Git에서 디렉토리 일부분만 가져오려면 어떻게 해야되요?

SVN을 쓰시던 분들이 Git을 처음 접할때, 종종 하시는 질문이 있습니다. "디렉토리(=폴더) 중 일부만 가져오려면 어떻게 해야되요?" 이런 질문을 받게 되면 "Git에서는 안되요."라고 답변을 해왔습니다. 이 대답이 그때는 맞았고, 이제는 틀렸습니다. (꽤 오래전부터)가능해졌습니다. 그래서 이제는 "최신버전을 쓰시면 할 수 있어요."라고 대답해야 겠습니다. sparse checkout이라는 기법인데, 버전에 따라서 할 수 있는 방법이 좀 다르네요. sparse chckeout(git 1.7.0~), sparse-checkout(git 2.25~) React 리파지토리의 디렉토리 중 scripts 폴더만 가져오는 것을 예제로 각각 어떻게 하는지 알아보겠습니다. ( 아래 예제는 windows10 wsl ..