Как я могу передать только некоторые файлы?

У меня есть два проекта. Один из них - "официальный" проект, а второй - легкая модификация (некоторые файлы добавлены). Я создал новую ветку, и я поместил в нее новые файлы. Но во время разработки некоторые файлы, общие для обеих ветвей, изменяются.

Как я могу зафиксировать только эти файлы?

Ответ 1

Я предполагаю, что вы хотите зафиксировать изменения в одной ветке, а затем сделать эти изменения видимыми в другой ветке. В git у вас не должно быть никаких изменений в верхней части 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

Ответ 2

Получить список файлов, которые вы хотите совершить

$ 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

Ответ 3

Вы можете зафиксировать некоторые обновленные файлы, например:

git commit file1 file2 file5 -m "commit message"

Ответ 4

Некоторые из них кажутся "неполными"

Группы людей НЕ собираются знать, должны ли они использовать кавычки и т.д.

Добавить 1 конкретный файл, в котором также показаны пути местоположения

git add JobManager/Controllers/APIs/ProfileApiController.cs

Фиксировать

git commit -m "your message"  

Push to remote repo

git push 

В других ответах указывается stash и т.д., которые вы иногда захотите сделать

Ответ 5

Если у вас уже поставлены файлы, просто отключите их:

git reset HEAD [file-name-A.ext] [file-name-B.ext]

Затем добавьте их пополам обратно.

Ответ 6

Предположим, вы внесли изменения в несколько файлов, например: File1 File2 file3 file4 File5

Но вы хотите зафиксировать только изменения File1 и File3.

Есть два способа сделать это: 1 > Сценируйте только эти два файла, используя: git добавить файл1 файл2

тогда, commit git commit -m "ваше сообщение"

затем нажмите git нажмите

2 > Прямая фиксация

git commit file1 file3 -m "мое сообщение"

затем нажмите, git нажмите

На самом деле первый метод полезен, если мы регулярно изменяем файлы и размещаем их → Крупные проекты, как правило, проекты Live. Но если мы модифицируем файлы и не размещаем их, мы можем делать прямые commit → Small projects