Answers:
我想您想将更改提交到一个分支,然后在另一分支中使这些更改可见。在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
git commit [some files]
,也--only
应该使用第二个示例(,表示切换)。第一个示例(git add [some files]
后跟git 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
将文件添加到暂存
$ 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个显示位置路径的特定文件
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)
其他答案显示您有时想做的藏匿处等
假设您对多个文件进行了更改,例如:
但是您只想提交对File1和File3的更改。
有两种方法可以执行此操作:
1.仅使用以下两个步骤处理这两个文件:
git add file1 file2
然后,提交
git commit -m "your message"
然后推
git push
2.直接提交
git commit file1 file3 -m "my message"
然后推
git push
实际上,如果我们要定期修改文件并暂存它们->大型项目,通常是Live项目,则第一种方法很有用。
但是,如果我们要修改文件而不是暂存文件,则可以直接提交->小型项目
--only
。然后,该命令将git commit --only file1 --only file3 -m "my message"
与git commit -o file1 -o file3 -m "my message"
参考相同或使用快捷方式作为参考:git-scm.com/docs/git-commit
如果您没有太多代码更改,这是一种简单的方法:
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
在步骤5中,您已经应用了存储并提交了您在步骤4中想要的代码,新应用的存储中的差异和未跟踪只是在步骤4中提交之前在步骤3中删除的代码。
这样的第6步是您不想提交的代码的存储,因为您可能真的不想丢失那些更改,对吗?因此,现在可以通过将git stash应用到正确的分支并进行提交,将步骤6中的新存储存储提交到此分支或任何其他分支。
显然,这假定您执行了一个流程中的步骤,如果您在这些步骤中的任何其他位置进行存储,则需要注意上面每个步骤的存储引用(而不是仅基本存储并应用最新存储)。