728x90
반응형

git 301

Git의 브랜치에서 커밋 삭제하는 방법

질문 : Git의 브랜치에서 커밋 삭제 커밋을 삭제하는 방법을 알고 싶습니다. delete 라는 말은 내가 그 커밋을하지 않은 것 같고, 나중에 푸시를 할 때 변경 사항이 원격 브랜치로 푸시되지 않는다는 것을 의미합니다. 나는 git help를 읽었으며 사용해야 할 명령은 git reset --hard HEAD 입니다. 이 올바른지? 답변 주의 : git reset --hard 작업 디렉토리 변경을 삭제 합니다. 이 명령을 실행하기 전에 유지하려는 로컬 변경 사항 을 숨기십시오. 당신이 그 커밋에 앉아 있다고 가정하면이 명령은 그것을 깨울 것입니다 ... git reset --hard HEAD~1 HEAD~1 은 헤드 전에 커밋을 의미합니다. git log 의 출력을보고 백업 할 커밋의 커밋 ID를 찾은..

개발관련/Git 2021.12.16

.gitignore for Visual Studio 프로젝트 및 솔루션

질문 : .gitignore for Visual Studio 프로젝트 및 솔루션 Visual Studio 솔루션 ( .sln ) 및 프로젝트와 함께 Git 을 사용할 때 .gitignore 어떤 파일을 포함해야합니까? 답변 공식 GitHub의 "유용한 .gitignore 템플릿 모음"을 참조하십시오. .gitignore 는 여기에서 찾을 수 있습니다. https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 출처 : https://stackoverflow.com/questions/2143956/gitignore-for-visual-studio-projects-and-solutions

개발관련/Git 2021.12.16

Git에서 유효하지 않은 원격 분기 참조 제거하는 방법

질문 : Git에서 유효하지 않은 원격 분기 참조를 어떻게 제거합니까? 내 현재 저장소에는 다음과 같은 출력이 있습니다. $ git branch -a * master remotes/origin/master remotes/public/master 분기 목록에서 remotes/public/master 를 삭제하고 싶습니다. $ git branch -d remotes/public/master error: branch 'remotes/public/master' not found. git remote 의 출력은 public 목록이 없기 때문에 이상합니다. $ git remote show origin 지점 목록에서 '리모트 / 공개 / 마스터'를 삭제하려면 어떻게해야합니까? 업데이트, git push 명령을 시도했..

개발관련/Git 2021.12.16

하나의 명령으로 git 루트 디렉토리를 얻는 방법

질문 : 하나의 명령으로 git 루트 디렉토리를 얻는 방법이 있습니까? Mercurial에는 다음을 통해 루트 디렉토리 (.hg 포함)를 인쇄하는 방법이 있습니다. hg root .git 디렉토리를 포함하는 디렉토리를 가져 오는 것과 동등한 것이 git에 있습니까? 답변 예: git rev-parse --show-toplevel Git 명령을 더 직접 복제하려면 별칭을 만들 수 있습니다. git config --global alias.root 'rev-parse --show-toplevel' 이제 git root hg root 처럼 작동합니다. 참고 : 하위 모듈에서는 상위 저장소가 아닌 하위 모듈 의 루트 디렉토리를 표시합니다. Git> = 2.13 이상을 사용하는 경우 서브 모듈이 수퍼 프로젝트의 루..

개발관련/Git 2021.12.15

Xcode 프로젝트에 대한 Git ignore 파일

질문 : Xcode 프로젝트에 대한 Git 무시 파일 Xcode 와 함께 Git 을 사용할 때 .gitignore 어떤 파일을 포함해야합니까? 답변 이전에 최고 투표 답변을 사용했지만 약간의 정리가 필요하므로 여기에서 Xcode 4에 대해 다시 작성하여 몇 가지 개선 사항을 적용했습니다. 이 목록에있는 모든 파일을 조사했지만 그중 일부는 Apple의 공식 Xcode 문서에 존재하지 않으므로 Apple 메일 링리스트에 가야했습니다. Apple은 문서화되지 않은 파일을 계속 추가하여 라이브 프로젝트를 손상시킬 수 있습니다. 이 IMHO는 받아 들일 수 없으며, 이제 그들이 그렇게 할 때마다 버그를 기록하기 시작했습니다. 나는 그들이 상관하지 않는다는 것을 알고 있지만 아마도 그들 중 하나가 개발자를 더 공정..

개발관련/Git 2021.12.15

커밋 푸시를 위해 GitHub 자격 증명을 캐시하는 방법

질문 : 커밋 푸시를 위해 GitHub 자격 증명을 캐시하는 방법이 있습니까? 최근에 GitHub (방화벽 문제로 인해)에서 내 저장소를 https : //로 동기화하도록 전환했으며 매번 암호를 묻습니다. git push 할 때마다 인증하는 대신 자격 증명을 캐시하는 방법이 있습니까? 답변 Git 버전 1.7.9 이상에서 Git 1.7.9 (2012 년 1 월 말에 릴리스 됨) 이후 Git에는 자격 증명 도우미 라고하는 HTTP / HTTPS에 대해 항상 암호를 입력하지 않아도되는 깔끔한 메커니즘이 있습니다. (아래 댓글에서이 새로운 기능을 지적 해 주신 dazonic 에게 감사드립니다.) Git 1.7.9 이상에서는 다음 자격 증명 도우미 중 하나만 사용할 수 있습니다. git config --glob..

개발관련/Git 2021.12.15

Git 저장소에서 삭제 된 파일을 찾고 복원하는 방법

질문 : Git 저장소에서 삭제 된 파일을 찾고 복원하는 방법 내가 Git 저장소에 있다고 가정하십시오. 파일을 삭제하고 변경 사항을 커밋합니다. 나는 계속 일하고 더 많은 커밋을 만듭니다. 그런 다음 해당 파일을 복원해야합니다. git checkout HEAD^ foo.bar 사용하여 파일을 체크 아웃 할 수 있다는 것을 알고 있지만 해당 파일이 언제 삭제되었는지는 잘 모릅니다. 수동으로 로그를 찾아보고 주어진 SHA에 대한 전체 프로젝트를 체크 아웃 한 다음 해당 파일을 원래 프로젝트 체크 아웃에 수동으로 복사 할 필요가 없기를 바랍니다. 답변 주어진 경로에 영향을 준 마지막 커밋을 찾습니다. 파일이 HEAD 커밋에 없기 때문에이 커밋은 삭제해야합니다. git rev-list -n 1 HEAD -- ..

개발관련/Git 2021.12.14

현재 변경 사항으로 Git 분기 만들기

질문 : 현재 변경 사항으로 Git 분기 만들기 나는 내 작업이 쉬울 것이라고 생각하면서 마스터 브랜치에서 일하기 시작했습니다. 잠시 후 더 많은 작업이 필요하다는 것을 깨달았고이 모든 작업을 새 지점에서 수행하고 싶습니다. 새 브랜치를 생성하고 더티 마스터 없이이 모든 변경 사항을 적용하려면 어떻게해야합니까? 답변 아직 커밋하지 않았다면 (1 : 브랜치)와 (3 : 체크 아웃)만으로 충분합니다. 또는 하나의 명령으로 : git checkout -b newBranch git reset man 페이지 에서 언급했듯이 : $ git branch topic/wip # (1) $ git reset --hard HEAD~3 # (2) NOTE: use $git reset --soft HEAD~3 (explanat..

개발관련/Git 2021.12.14

git 히스토리에서 큰 커밋을 찾고 식별하는 방법

질문 : git 히스토리에서 큰 커밋을 찾고 식별하는 방법은 무엇입니까? 300MB git repo가 있습니다. 현재 체크 아웃 한 파일의 총 크기는 2MB이고 나머지 git repo의 총 크기는 298MB입니다. 이것은 기본적으로 몇 MB를 넘지 않아야하는 코드 전용 저장소입니다. 누군가 실수로 큰 파일 (비디오, 이미지 등)을 커밋 한 다음 제거했지만 git에서는 제거하지 않았기 때문에 기록에는 여전히 쓸모없는 대용량 파일이 포함되어 있습니다. git 히스토리에서 대용량 파일을 어떻게 찾을 수 있습니까? 400 개 이상의 커밋이 있으므로 하나씩 진행하는 것은 실용적이지 않습니다. 참고 : 내 질문 은 파일을 제거하는 방법이 아니라 처음에 파일을 찾는 방법에 관한 것입니다. 답변 이 스크립트는 과거에 ..

개발관련/Git 2021.12.14

GitHub에서 분기 된 저장소를 업데이트하거나 동기화 하는 방법

질문 : GitHub에서 분기 된 저장소를 업데이트하거나 동기화하려면 어떻게하나요? 프로젝트를 분기하고 몇 가지 수정 사항을 적용하고 수락 된 풀 요청을 생성했습니다. 며칠 후 다른 기여자가 변경했습니다. 그래서 내 포크에는 그 변화가 없습니다. 변경 사항을 포크로 가져 오려면 어떻게해야합니까? 기여할 추가 변경 사항이있을 때 내 포크를 삭제하고 다시 만들어야합니까? 아니면 업데이트 버튼이 있습니까? 답변 분기 된 저장소의 로컬 복제본에서 원본 GitHub 저장소를 "원격"으로 추가 할 수 있습니다. ( "Remotes"는 저장소 URL의 별명과 같습니다 origin 은 하나입니다.) 그런 다음 해당 업스트림 저장소에서 모든 분기를 가져오고 업스트림 버전에서 계속 작업하도록 작업을 리베이스 할 수 있습니..

개발관련/Git 2021.12.13

“git commit”과“git push”의 차이점

질문 : “git commit”과“git push”의 차이점은 무엇입니까? 내가 살펴볼 Git 튜토리얼에서 git commit 은 변경 사항을 저장하는 데 사용됩니다. git push 는 무엇입니까? 답변 기본적으로 git commit " 은 저장소에 변경 사항을 기록 하는 반면 git push " 는 관련 객체와 함께 원격 참조를 업데이트합니다 . 따라서 첫 번째는 로컬 저장소와 연결하여 사용되는 반면 후자는 원격 저장소와 상호 작용하는 데 사용됩니다. 다음은 git 모델과 명령을 설명하는 Oliver Steele 의 멋진 사진입니다. GitReady.com 에서 git push 및 git pull 에 대해 자세히 알아보기 (내가 먼저 언급 한 기사) 출처 : https://stackoverflow.c..

개발관련/Git 2021.12.13

Git에서 로컬 작업 디렉토리를 지우는 방법

질문 : Git에서 로컬 작업 디렉토리를 지우려면 어떻게해야합니까? Git에서 내 작업 디렉토리를 어떻게 지울 수 있습니까? 답변 특정 파일을 마지막으로 커밋 된 상태로 재설정하려면 (특정 파일에서 커밋되지 않은 변경 사항을 버리기 위해) : git checkout thefiletoreset.txt git status 출력에 언급되어 있습니다. (use "git checkout -- ..." to discard changes in working directory) 전체 저장소를 마지막 커밋 된 상태로 재설정하려면 : git reset --hard 비 추적 파일을 제거하려면, 나는 대개 모든 작업 복사본의 파일 (그러나 삭제 .git/ 폴더를!), 다음을 수행 git reset --hard 하는 커밋 된 ..

개발관련/Git 2021.12.13

Git으로 GitHub에서 특정 분기 가져오기

질문 : Git은 GitHub에서 특정 분기를 가져옵니다. 여러 지점이있는 프로젝트가 있습니다. 나는 그들을 GitHub 로 밀고 있었고, 이제 다른 누군가가 프로젝트를 진행하고 있으므로 GitHub에서 브랜치를 가져와야합니다. 마스터에서 잘 작동합니다. xyz 브랜치를 만들었다 고합시다. GitHub에서 브랜치 xyz 를 가져와 내 localhost xyz 에 병합하려면 어떻게해야합니까? 사실 여기 내 대답을 : 망할 놈의 푸시 및 풀 가지 하지만 "! [거부 됨]"오류와 "빨리 감기가 아님"에 대한 내용이 표시됩니다. 어떤 제안? 답변 하지만 "! [거부 됨]"오류와 "빨리 감기가 아님"에 대한 내용이 표시됩니다. Git이 브랜치의 변경 사항을 현재 마스터로 병합 할 수 없기 때문입니다. master..

개발관련/Git 2021.12.12

Git의 디렉토리에있는 파일을 무시하는 방법

질문 : Git의 디렉토리에있는 파일을 어떻게 무시합니까? .gitignore 파일이 디렉토리의 파일을 무시하는 적절한 구문은 무엇입니까? 일 것이다 config/databases.yml cache/* log/* data/sql/* lib/filter/base/* lib/form/base/* lib/model/map/* lib/model/om/* 또는 /config/databases.yml /cache/* /log/* /data/sql/* /lib/filter/base/* /lib/form/base/* /lib/model/map/* /lib/model/om/* ? 답변 패턴 형식 빈 줄은 파일과 일치하지 않으므로 가독성을위한 구분 기호로 사용할 수 있습니다. # 시작하는 줄은 주석 역할을합니다. 선택적 ..

개발관련/Git 2021.12.12

git 저장소의 모든 파일에있는 총 줄 수를 계산하는 방법

질문 : git 저장소의 줄 수 계산 git 저장소의 모든 파일에있는 총 줄 수를 어떻게 계산합니까? git ls-files 는 git이 추적하는 파일 목록을 제공합니다. 나는에 명령을 찾고 있어요 cat 모든 파일을. 같은 것 git ls-files | [cat all these files] | wc -l 답변 xargs 는 원하는 것을 수행합니다. git ls-files | xargs cat | wc -l 그러나 더 많은 정보와 아마도 더 나은 방법으로 다음을 수행 할 수 있습니다. git ls-files | xargs wc -l 출처 : https://stackoverflow.com/questions/4822471/count-number-of-lines-in-a-git-repository

개발관련/Git 2021.12.12

init으로 만든 git 저장소를 완전히 삭제하는 방법

질문 : init으로 만든 git 저장소를 완전히 삭제하는 방법은 무엇입니까? git init 으로 git 저장소를 만들었습니다. 완전히 삭제하고 새로운 것을 초기화하고 싶습니다. 답변 Git은 모든 파일을 .git 디렉토리에 보관합니다. 해당 항목을 제거하고 다시 초기화하십시오. 찾을 수 없다면 숨겨져 있기 때문입니다. Windows 7에서는 폴더로 이동하여 왼쪽 상단의 구성 을 클릭 한 다음 폴더 및 검색 옵션 을 클릭 한 다음 보기 탭을 클릭하고 숨김 파일, 폴더 및 드라이브 표시 라디오 버튼을 클릭해야합니다. Mac OS : 터미널을 열고 (Spotlight를 통해 : CMD + SPACE를 누르고 terminal 을 입력 한 다음 Enter 키 를 누릅니다) 다음을 실행합니다. defaults ..

개발관련/Git 2021.12.12

파일을 특정 개정으로 재설정 하거나 되돌리는 방법

질문 : 파일을 특정 개정으로 재설정하거나 되돌리려면 어떻게합니까? 파일 그룹의 일부로 몇 번 커밋 된 파일을 일부 변경했지만 이제 변경 사항을 이전 버전으로 재설정 / 되돌리려 고합니다. git diff 와 함께 git log 를 작성했지만 파일을 과거의 상태로 되 돌리는 방법을 모릅니다. 답변 원하는 커밋의 해시가 c5f567 이라고 가정합니다. git checkout c5f567 -- file1/to/restore file2/to/restore git checkout man 페이지에서 자세한 정보를 제공합니다. c5f567 이전의 커밋으로 되돌리려면 ~1 추가합니다 (여기서 1은 되돌리고 자하는 커밋의 수이며 무엇이든 가능). git checkout c5f567~1 -- file1/to/restor..

개발관련/Git 2021.12.12

git-diff ^ M을 무시하는 방법

질문 : ^ M을 무시하려면 git-diff 일부 파일에 개행 구분 기호로 ^ M이 포함 된 프로젝트에서. git-diff는 전체 파일이 한 줄에 불과하기 때문에 이러한 파일을 비교하는 것은 분명히 불가능합니다. 이전 버전과 어떻게 다른가요? "diffing 할 때 ^ M을 줄 바꿈으로 처리"와 같은 옵션이 있습니까? prompt> git-diff "HEAD^" -- MyFile.as diff --git a/myproject/MyFile.as b/myproject/MyFile.as index be78321..a393ba3 100644 --- a/myproject/MyFile.cpp +++ b/myproject/MyFile.cpp @@ -1 +1 @@ -import flash.events.MouseEven..

개발관련/Git 2021.12.11

Git 병합, Git 리베이스 사용시기

질문 : Git 병합 대신 Git 리베이스를 언제 사용합니까? Git 리베이스와 Git 병합을 사용하는 것이 권장되는시기는 언제입니까? 성공적인 리베이스 후에도 병합해야합니까? 답변 Merge는 한 분기의 모든 변경 사항을 가져와 하나의 커밋에서 다른 분기로 병합합니다. Rebase는 분기 한 지점을 새 시작 지점으로 이동하고 싶다고 말합니다. 그렇다면 둘 중 하나를 언제 사용합니까? 단일 기능을 개발할 목적으로 분기를 만들었다 고 가정 해 보겠습니다. 이러한 변경 사항을 마스터로 다시 가져 오려면 병합을 원할 것입니다 (모든 중간 커밋을 유지하는 데 신경 쓰지 않음). 두 번째 시나리오는 개발을 시작한 다음 다른 개발자가 관련없는 변경을 수행 한 경우입니다. 리포지토리에서 현재 버전의 변경 사항을 기반..

개발관련/Git 2021.12.11

이 저장소에서 다른 git 프로세스가 실행중인 것 같습니다.

질문 : 이 저장소에서 다른 git 프로세스가 실행중인 것 같습니다. 나는 Git 사용법을 배우려고 노력하고 있으며 HTML, CSS 및 Javascript 파일로 작은 프로젝트를 만들었습니다. 기본적으로 빈 프로젝트에서 분기를 만든 다음 코드를 약간 변경했습니다. 변경 사항을 준비하려고했지만 다음과 같은 오류 메시지가 나타납니다. Another git process seems to be running in this repository, e.g. an editor opened by 'git commit'. Please make sure all processes are terminated then try again. If it still fails, a git process may have crashed ..

개발관련/Git 2021.12.11

브랜치를 변경하지 않고 다른 Git 브랜치에서 파일보기

질문 : 브랜치를 변경하지 않고 다른 Git 브랜치에서 파일보기 브랜치를 체크 아웃하지 않고 git 브랜치에서 파일을 열 수 있습니까? 어떻게? 본질적으로 나는 항상 분기를 전환하지 않고 내 github 페이지 분기에서 파일을 열 수 있기를 원합니다. 나는 그것을 수정하고 싶지 않고 단지보고 싶다. 답변 이것은 작동합니다. git show branch:file 여기서 branch 는 모든 ref (branch, tag, HEAD, ...)가 될 수 있고 file 은 파일의 전체 경로입니다. 그것을 내보내려면 사용할 수 있습니다. git show branch:file > exported_file 몇 가지 관련 질문에 대한 VonC 의 답변도 살펴 봐야합니다. Git의 특정 개정판에서 단일 파일을 검색하는 ..

개발관련/Git 2021.12.11

`git merge`와`git merge --no-ff`의 차이점

질문 : `git merge`와`git merge --no-ff`의 차이점은 무엇입니까? gitk log 사용하면 둘 사이의 차이점을 찾을 수 없습니다. 차이점을 어떻게 관찰 할 수 있습니까 (git 명령 또는 일부 도구 사용)? 답변 --no-ff 플래그는 HEAD 가 병합하려는 커밋의 조상 git merge 가 "빨리 감기"를 실행하는 것을 방지합니다. 빨리 감기는 병합 커밋을 구성하는 대신 git이 들어오는 커밋을 가리 키도록 분기 포인터를 이동하는 경우입니다. 이것은 일반적으로 로컬 변경없이 git pull 을 수행 할 때 발생합니다. 그러나 때로는 특정 분기 토폴로지를 유지하기를 원하기 때문에 이러한 동작이 발생하는 것을 방지하고 싶을 때가 있습니다 (예 : 토픽 분기에서 병합하고 히스토리를 읽..

개발관련/Git 2021.12.11

Git Bash에 복사하여 붙여 넣는 방법

질문 : Git Bash에 복사하여 붙여 넣는 방법 Windows XP에서 실행되는 msysgit을 사용하고 있습니다. Ctrl +V , 오른쪽 클릭, 가운데 클릭, 구글 ... 행운이 없습니다. 답변 insert을 누릅니다. 또한 창에서 복사하려면 콘솔의 창 아이콘 (왼쪽 상단)을 클릭하고 편집-> 표시를 선택한 다음 텍스트에서 상자를 드래그 한 다음 Enter 키를 눌러보십시오. (창 아이콘 메뉴를 통해 붙여 넣을 수도 있지만 키가 더 빠릅니다.) 최신 정보 Windows 10부터 CTRL +C ,CTRL +V 및 기타 많은 기능이 conhost.exe에 구현되어 있으므로 Windows의 모든 콘솔 유틸리티에서 작동해야합니다. (속성-> 옵션 탭-> 빠른 편집 모드를 활성화해야합니다) 참조 : htt..

개발관련/Git 2021.12.10

macOS 업데이트 후 Git이 작동하지 않는 오류 (xcrun : 오류 : invalid active developer path (/Library/Developer/CommandLineTools)

질문 : macOS 업데이트 후 Git이 작동하지 않음 (xcrun : 오류 : 잘못된 활성 개발자 경로 (/ Library / Developer / CommandLineTools)) macOS Mojave로 업데이트했습니다 (Catalina 업데이트에서도 발생하며 이후 모든 주요 업데이트에서 잠재적으로 발생하는 것으로 보입니다) 오늘 아침 저는 MacBook pro의 명령 줄에서 작업 코드베이스로 이동하여 저장소에 "git status"를 입력하고 오류를 받았습니다. xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTo..

개발관련/Git 2021.12.10

'git diff'가 호출기를 사용하지 못하도록 하는 방법

질문 : 'git diff'가 호출기를 사용하지 못하도록하려면 어떻게해야합니까? git diff 및 기본적으로 less 호출기를 사용하는 다른 명령에 전달할 명령 줄 스위치가 있습니까? 나는 그것을 cat으로 파이프 할 수 있다는 것을 알고 있지만 모든 구문 강조 표시를 제거합니다. GITPAGER=cat (또는 이와 비슷한 것)에 의해 글로벌 .gitconfig의 호출기를 cat으로 설정할 수 있다는 것을 알고 있습니다. 그러나 나는 때때로 호출기를 원합니다 (diff의 크기에 따라 다름). 그러나 명령 줄 스위치가 있으면 선호합니다. 매뉴얼 페이지를 통해 찾을 수 없습니다. 답변 --no-pager to Git은 호출기를 사용하지 않도록 지시합니다. -F 옵션을 less 전달하면 출력이 단일 화면에 ..

개발관련/Git 2021.12.10
728x90
반응형