Git: 일반적인 솔루션.

4163 단어 git
나는git를 사용한 지 이미 오래되었다.처음에는 쉽게 사용할 수 있을 것 같았지만, 한 사람이 그것을 계속 사용할 때, 그는 어떤 어려움에 직면할 수도 있다.고맙게도 Git는 상대적으로 흔히 볼 수 있는 장면에 해결 방안을 제공했다.

시나리오#1:


만약 내가 사유나 비밀 영패를 사용하는 프로젝트를 만들었다면.분명히, 나는 나의 개인 영패를 최종적으로 버전 제어에 나타나지 않을 것이다.따라서, 나는 파일이 버전 제어에 의외로 추가되지 않았는지 확인해야 한다.
또한 버전 제어에 추가하지 않으려는 파일이나 디렉터리가 있을 수 있습니다. 예를 들어 -node modules/)그러나 이것들은 계속 변하지 않을 것이다​추적되지 않은 파일입니다.

솔루션 - GitIgnore


상기 장면을 처리하기 위해git는 gitignore를 제공했다.이것은 기본적으로git 저장소에서 만든 파일로 제출할 때 일부 파일과/또는 디렉터리를 무시하는 데 사용됩니다.
git 저장소에 .gitignore 라는 파일을 만들고 버전 제어에 추가하지 않으려는 모든 파일 이름을 추가합니다.이 파일을 제출하면git는 .gitignore의 파일이나 디렉터리 이름을 무시합니다.
A.얘가 이렇게 보일 수도 있어-

이것은 npm-debug.log, config.js, node_modules/ 디렉터리를 무시합니다.저장소의 모든 .js 파일을 무시하려면 *.js 파일에 .gitignore를 추가합니다.
자세한 내용Here.

시나리오 2:


git의 작업 절차는 이렇다-
  • git Clone을 사용하여 저장소를 로컬 컴퓨터로 복제합니다.
  • 필요한 변경을 수행합니다.
  • 서류를 제출한다.
  • git Push
  • 로 원격 위치로 파일 푸시
    보기에는 매우 간단하지 않습니까?응, 그건 간단하지만, 파일이 여러 개 있으면 복제하는 데 시간이 많이 걸릴 거야.또한 제출 기록이 많으면 복제에 걸리는 시간이 늘어날 것이다.예를 들어, 만약 저장소에 >4K의 제출이 있다면, 모든git복제는 제출 기록을 가져옵니다.

    솔루션 - Git Select 클론


    우리들은 위의 예를 이야기합시다.저장소에 >4K개의 커밋이 있습니다.나는 이 모든 기록을 필요로 하지 않을 것이다.최신 커밋만 원하는 경우 클론 프로세스가 더 빨라집니다.Git는 클론만 복제할 수 있도록 히스토리를 커밋하는 기능을 제공합니다.이것은Git Shallow Clone이라고 불린다.
    사용하려면 git clone 명령과 함께 로고 --depth 를 전달하고 제출할 역사의 깊이를 지정하십시오.다음은 하나의 예-

    여기서 Linux 커널의 소스 코드 트리를 복제하려고 합니다.그것은 모두 704972회 제출되었다.
    이에 따라git클론은 5608186개 대상을 다운로드하고, depth 1을 사용하면 크기가 65237개 대상으로 줄어든다.
    자세한 내용Here

    장면#3:


    나는 새로운 기능을 개발하기 위해 저장소를 복제했다.현재, 나의 새로운 변경은 코드를 파괴할 수도 있다.다시 말하면, 나는 나의 변경 사항이 완벽하게 실행될 수 있는지 100% 확신할 수 없다.가령 새로운 기능을 추가할 때, 나는 다른 문제가 매우 중요하다고 전화를 받았는데, 나는 가능한 한 빨리 그것을 해결해야 한다고 말했다.그래서 나는 이 문제를 해결했고, 지금은 코드를 전송할 수 없다.왜?새로운 기능이 아직 완전히 작용하지 않았기 때문이다.하지만 복구 프로그램을 배치해야 한다.어떡하죠?
    프로젝트를 다시 복제하고 관건적인 버그를 복구할 수 있습니다.하지만 나는 모든 일을 다시 해야 한다.

    솔루션 - Git 분기


    Git는 독자적인 개발 노선을 제공했다.우리는 그것을 새로운 작업 디렉터리를 요청하는 방식으로 볼 수 있다.
    지점의 제출은 다른 지점과 분리됩니다.이것은 내가 한 지점에서 변경 사항을 제출하면 다른 지점에서 볼 수 없다는 것을 의미한다.기본적으로 우리는 주 지점에 있지만, 우리는 필요에 따라 임의의 여러 지점을 만들 수 있다.git branch -> list all available branches출력은 이렇게 -
    * master
    branch_bug_fix
    
    현재 저는 master지사에 있습니다.지점을 바꾸기 위해 사용할 수 있습니다-git checkout <BRANCH_NAME>현재 분기를 소스로 사용하여 새 분기 생성: git checkout -b <NEW_BRANCH_NAME>분기를 삭제하려면 다음을 사용하십시오.git branch -d <BRANCH_NAME>자세한 내용Here

    장면#4:


    그래서 저는 한 가지 기능을 개발하고 있습니다. 지점을 바꾸고 다른 기능을 개발해야 합니다.근데 잠깐만!나는 아직 코드를 제출하지 않았는데,git는 내가 제출하지 않은 상황에서 지점을 전환하는 것을 허락하지 않는다.또한 작업이 아직 끝나지 않았기 때문에 변경 사항을 제출할 수 없습니다.가장 간단한 해결 방안은 제출 메시지 (예: 기능 x 불완전) 를 사용하여 변경 사항을 제출하는 것이다.그것은 작용하지만, 불필요한 제출 기록을 추가할 것이다.

    솔루션 - Git 숨기기


    Git stash - 변경 사항을 더러운 작업 디렉토리에 숨깁니다.
    사용자가 다른 내용을 처리할 수 있도록 변경 사항을 잠시 저장하거나 저장한 다음 나중에 돌아와서 다시 적용할 수 있습니다.만약 서로 다른 지점 사이를 전환하고 코드 변경을 통해 중간에 작업을 전환해야 한다면, 그것은 매우 유용하다.
    변경 내용을 숨기려면 다음을 사용합니다.$git stash다음과 같은 방법으로 변경 사항을 다시 적용할 수 있습니다.$git stash apply
    자세한 내용Here

    좋은 웹페이지 즐겨찾기