Git: 일반적인 솔루션.
4163 단어 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의 작업 절차는 이렇다-
보기에는 매우 간단하지 않습니까?응, 그건 간단하지만, 파일이 여러 개 있으면 복제하는 데 시간이 많이 걸릴 거야.또한 제출 기록이 많으면 복제에 걸리는 시간이 늘어날 것이다.예를 들어, 만약 저장소에 >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
Reference
이 문제에 관하여(Git: 일반적인 솔루션.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/fumblehool/git-the-common-solutions-2pcg
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
* master
branch_bug_fix
그래서 저는 한 가지 기능을 개발하고 있습니다. 지점을 바꾸고 다른 기능을 개발해야 합니다.근데 잠깐만!나는 아직 코드를 제출하지 않았는데,git는 내가 제출하지 않은 상황에서 지점을 전환하는 것을 허락하지 않는다.또한 작업이 아직 끝나지 않았기 때문에 변경 사항을 제출할 수 없습니다.가장 간단한 해결 방안은 제출 메시지 (예: 기능 x 불완전) 를 사용하여 변경 사항을 제출하는 것이다.그것은 작용하지만, 불필요한 제출 기록을 추가할 것이다.
솔루션 - Git 숨기기
Git stash - 변경 사항을 더러운 작업 디렉토리에 숨깁니다.
사용자가 다른 내용을 처리할 수 있도록 변경 사항을 잠시 저장하거나 저장한 다음 나중에 돌아와서 다시 적용할 수 있습니다.만약 서로 다른 지점 사이를 전환하고 코드 변경을 통해 중간에 작업을 전환해야 한다면, 그것은 매우 유용하다.
변경 내용을 숨기려면 다음을 사용합니다.
$git stash
다음과 같은 방법으로 변경 사항을 다시 적용할 수 있습니다.$git stash apply
자세한 내용Here
Reference
이 문제에 관하여(Git: 일반적인 솔루션.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/fumblehool/git-the-common-solutions-2pcg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)