可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I have two projects. One is the "official" project and the second is a light modification (some files added). I created new branch and I put new files to them. But in during development some files common to both branches is changed.
How do I commit only these files?
回答1:
I suppose you want to commit the changes to one branch and then make those changes visible in the other branch. In git you should have no changes on top of HEAD when changing branches.
You commit only the changed files by:
git commit [some files]
Or if you are sure that you have a clean staging area you can
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]
If you want to make that commit available on both branches you do
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:
Get a list of files you want to commit
$ 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
Add the files to staging
$ git add file1 file2
Check to see what you are committing
$ 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
Commit the files with a commit message
$ git commit -m "Fixed files 1 and 2"
If you accidentally commit the wrong files
$ git reset --soft HEAD~1
If you want to unstage the files and start over
$ git reset
Unstaged changes after reset:
M file1
M file2
M file3
M file4
回答3:
You can commit some updated files, like this:
git commit file1 file2 file5 -m "commit message"
回答4:
Some of this seems "incomplete"
Groups of people are NOT going to know if they should use quotes etc..
Add 1 specific file showing the location paths as well
git add JobManager/Controllers/APIs/ProfileApiController.cs
Commit
git commit -m "your message"
Push to remote repo
git push
Other answer(s) show the stash etc. which you sometimes will want to do
回答5:
If you have already staged files, simply unstage them:
git reset HEAD [file-name-A.ext] [file-name-B.ext]
Then add them bit by bit back in.
回答6:
Suppose you made changes to multiple files, like:
File1
File2
File3
File4
File5
But you want to commit only changes of File1 and File3.
There are two ways for doing this:
1> Stage only these two files, using:
git add file1 file2
then, commit
git commit -m "your message"
then push
git push
2>
Direct commit
git commit file1 file3 -m "my message"
then push,
git push
Actually first method is useful in case if we are modifying files regularly and staging them --> Large Projects, generally Live projects.
But if we are modifying files and not staging them then we can do direct commit --> Small projects