일부 파일만 커밋하려면 어떻게 해야 합니까?
저는 두 가지 프로젝트가 있습니다.하나는 "공식" 프로젝트이고 다른 하나는 가벼운 수정(일부 파일 추가)입니다.저는 새로운 지점을 만들고 그들에게 새로운 파일을 보냈습니다.그러나 개발 중에는 두 지점에 공통적인 일부 파일이 변경됩니다.
이 파일만 커밋하려면 어떻게 해야 합니까?
변경 사항을 한 분기에 커밋한 다음 다른 분기에 변경 사항을 표시하려고 합니다.분기를 변경할 때 HEAD 상단에 변경 사항이 없어야 합니다.
변경된 파일만 커밋하는 방법은 다음과 같습니다.
git commit [some files]
또는 깨끗한 준비 구역이 있는 경우 다음과 같은 작업을 수행할 수 있습니다.
git add [some files] # add [some files] to staging area
git add [some more files] # add [some more files] to staging area
git commit # commit [some files] and [some more files]
두 분기 모두에서 해당 커밋을 사용할 수 있도록 하려면 다음 작업을 수행합니다.
git stash # remove all changes from HEAD and save them somewhere else
git checkout <other-project> # change branches
git cherry-pick <commit-id> # pick a commit from ANY branch and apply it to the current
git checkout <first-project> # change to the other branch
git stash pop # restore all changes again
커밋할 파일 목록 가져오기
$ git status
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: file1
modified: file2
modified: file3
modified: file4
스테이징에 파일 추가
$ git add file1 file2
커밋하는 내용 확인
$ git status
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: file1
modified: file2
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: file3
modified: file4
커밋 메시지와 함께 파일 커밋
$ git commit -m "Fixed files 1 and 2"
실수로 잘못된 파일을 커밋한 경우
$ git reset --soft HEAD~1
파일의 스테이징을 해제하고 다시 시작하려는 경우
$ git reset
Unstaged changes after reset:
M file1
M file2
M file3
M file4
다음과 같은 일부 업데이트된 파일을 커밋할 수 있습니다.
git commit file1 file2 file5 -m "commit message"
다음과 같은 여러 파일을 변경했다고 가정합니다.
- 파일 1
- 파일 2
- 파일 3
- 파일 4
- 파일 5
그러나 File1 및 File3의 변경 사항만 커밋하려고 합니다.
에는 두 : 작업에두가방지있법습다이니이는다▁there이있니.
1.다음을 사용하여 이 두 파일만 스테이징합니다.
git add file1 file3
그럼, 커밋
git commit -m "your message"
그리고 나서 밀어,
git push
2. 직접 커밋
git commit file1 file3 -m "your message"
그리고 나서 밀어,
git push
사실 첫 번째 방법은 파일을 정기적으로 수정하고 스테이징하는 경우에 유용합니다. --> 대규모 프로젝트, 일반적으로 라이브 프로젝트.
그러나 파일을 수정하고 스테이징하지 않으면 직접 커밋할 수 있습니다. --> 소규모 프로젝트
이 중 일부는 "불완전한" 것으로 보입니다.
여러 그룹의 사람들은 인용문 등을 사용해야 하는지 여부를 알지 못할 것입니다.
위치 경로를 표시하는 특정 파일 1개도 추가합니다.
git add JobManager/Controllers/APIs/ProfileApiController.cs
커밋(커밋은 로컬 전용이며 다른 시스템에는 영향을 주지 않음)
git commit -m "your message"
원격 저장소로 푸시
git push (this is after the commit and this attempts to Merge INTO the remote location you have instructed it to merge into)
다른 답변은 때때로 당신이 하고 싶어할 재고 등을 보여줍니다.
파일을 이미 스테이징한 경우 다음과 같이 스테이징을 해제합니다.
git reset HEAD [file-name-A.ext] [file-name-B.ext]
그런 다음 다시 조금씩 추가합니다.
명령줄을 사용할 수도 있습니다.
git add -p
이렇게 하면 커밋되지 않은 모든 파일을 하나씩 검토하고 커밋할지 여부를 선택할 수 있습니다.
그런 다음 각 수정에 대해 몇 가지 옵션이 나타납니다."yes I want to add this file"은 "yes", "n"은 "n"은 "No, I want to add this file"은 "n"으로 사용합니다.
Stage this hunk [y,n,q,a,d,K,g,/,e,?]?
(q,a,d,K,g,/,e,?)와 같은 다른 옵션에 대해서는, 그들이 무엇을 하는지는 잘 모르겠지만, "?"가 더 자세히 설명해야 할 경우 도움이 될 것 같습니다.
이 작업의 좋은 점은 작업을 수행한 후에 새 분기를 만들 수 있다는 것입니다. 그러면 모든 커밋되지 않은 작업이 새 분기에서 사용자를 따라오게 됩니다.많은 다른 것들을 코딩했고 실제로 그것을 누르기 전에 github에서 작업을 재구성하고 싶을 때 매우 유용합니다.
이것이 도움이 되길 바랍니다, 저는 이전에 말한 것을 본 적이 없습니다(만약 그것이 언급되었다면, 제 잘못입니다).
코드 변경이 많지 않은 경우 이 방법은 간단합니다.
1. git stash
2. git stash apply
3. remove the files/code you don't want to commit
4. commit the remaining files/code you do want
그런 다음 제거한 코드(커밋하지 않은 비트)를 별도의 커밋 또는 다른 분기에 포함하려면 이 분기에 있는 동안 다음을 수행합니다.
5. git stash apply
6. git stash
이미 스택을 적용하고 4단계에서 원하는 코드를 커밋한 5단계에서는 새로 적용된 스택에서 diff 및 추적되지 않은 코드는 4단계에서 커밋하기 전에 3단계에서 제거한 코드에 불과합니다.
이러한 6단계는 커밋하지 않은 코드의 저장입니다. 이러한 변경 사항을 정말로 잃고 싶지는 않을 것입니다. 그렇죠?따라서 6단계의 새 스택은 올바른 분기에 gitstash 적용을 수행하고 커밋하여 이 분기 또는 다른 분기에 커밋할 수 있습니다.
분명히 이것은 한 흐름에서 단계를 수행한다고 가정합니다. 이러한 단계의 다른 지점에 보관하는 경우 위의 각 단계에 대한 보관 참조를 기록해야 합니다(기본 보관 및 최신 보관 적용).
언급URL : https://stackoverflow.com/questions/7239333/how-do-i-commit-only-some-files
'programing' 카테고리의 다른 글
배치 파일:하위 문자열이 (파일이 아닌) 문자열에 있는지 확인합니다. (0) | 2023.05.15 |
---|---|
C# 인터페이스.암묵적 구현 대 명시적 구현 (0) | 2023.05.15 |
AWS 람다에 해당하는 Azure는 무엇입니까? (0) | 2023.05.15 |
사용할 때.첫 번째 및 사용 시기.LINQ의 첫 번째 또는 기본값? (0) | 2023.05.15 |
JavaScript console.log로 인해 다음 오류가 발생합니다. "메인 스레드에서 동기식 XMLHttpRequest가 사용되지 않습니다.." (0) | 2023.05.15 |