如何列出我提交给特定分支的所有文件?我已经向分支机构提交了大约40多个文件,我需要找到文件名,因为我正在尝试调试某些东西,当我不记得文件名时很难做到.
git log 只给我一长串提交但不是实际文件.
我有一个带注释的标签,指的是一个提交(如果它被注释会有用吗?)并且没有分支引用那里.提交会在一段时间后被垃圾收集吗?
我正在寻找一些论据来说服客户,一旦创建了标签,他就不应该对标签进行更改.
常识似乎没有有效的论据,所以我需要更实质的东西.
我想提交所有修改过的文件,除了使用Subversion的文件.
所以这是场景:
$ svn st
M file1
M file2
M file3
M file4
Run Code Online (Sandbox Code Playgroud)
我可以这样做:
svn ci -m "Commit 1" file1 file2 file3
svn ci -m "Commit 2" file4
Run Code Online (Sandbox Code Playgroud)
但是当有大量文件时,我正在努力简化我的工作:
svn ci -m "Commit 1" `svn st | awk '{print $2}' | grep -v file4`
svn ci -m "Commit 2" file4
Run Code Online (Sandbox Code Playgroud)
此解决方案非常脆弱,因为此方案不起作用:
$ svn st
M file1
M file2
D file3
A + file4
Run Code Online (Sandbox Code Playgroud)
我认为SVN没有针对我的问题的内置解决方案,但我不确定.还有其他方法吗?
我不能从提交中排除用户界面状态文件.
每次我试图推送到github时它都会要求我先提交并将用户界面状态文件插入到更改中(即使我没有移动鼠标或界面,它仍然显示提交!).
我尝试了其他类似主题中描述的不同方法.例如,我尝试将所有可能的用户界面案例添加到root中的.gitignore中,如下所示:
*.xcuserstate
project.xcworkspace
xcuserdata
UserInterfaceState.xcuserstate
project.xcworkspace/
xcuserdata/
UserInterface.xcuserstate
Run Code Online (Sandbox Code Playgroud)
它没用.我试图清理缓存并重置git,没有帮助.
Git status命令说明如下:"modified:.xcodeproj/project.xcworkspace/xcuserdata/.xcuserdatad/UserInterfaceState.xcuserstate"
它看起来像这样
请帮忙(这让我发疯了)!
我刚刚在几个单独的提交中创建了一大段代码.
所以我可以进行相关部分,提交,阶段,提交......等等,直到我提交了所有更改.
缺少的部分是我如何测试我是否正确分割提交.
也就是说,临时区域中的部分是否至少编译?
为此,我必须以某种方式使我的工作树与索引(临时区域)保持同步,而不会丢失稍后要提交的更改.
做正确的方法是什么?
什么是最快的做到这一点呢?
更新:
如何用magit做到这一点?
当我尝试提交特定文件(xxx.java)后弹出以下错误:
svn: Entry for 'C:\aaa/bbb/ccc/xxx.java' is marked as 'copied' but is not itself scheduled
for addition. Perhaps you're committing a target that is
inside an unversioned (or not-yet-versioned) directory?
Run Code Online (Sandbox Code Playgroud)
如何解决这个SVN错误?
我正在尝试将新版本提交到我的SVN存储库但遇到此错误:
svn:提交失败(详情如下):
svn:无法使用外部编辑器获取日志消息; 考虑设置$ SVN_EDITOR环境变量或使用--message(-m)或--file(-F)选项
svn:没有设置环境变量SVN_EDITOR,VISUAL或EDITOR,也没有'editor-cmd'运行 -时间配置选项被发现new-computers-computer:trunk newcomputer $
怎么了?
我想将我最后几次提交从master转移到他们自己的分支中.
我电脑上的树看起来像这样:
W (some branch)
/
X1--X2--X3--X4--Y--Z1--Z2 (master)
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像:
W (some branch)
/
X1--X2--X3--X4 (master)
\
Y--Z1--Z2 (my new branch)
Run Code Online (Sandbox Code Playgroud)
但是,GitHub上的树看起来像:
W (some branch)
/
X1--X2--X3--X4--Y (master)
Run Code Online (Sandbox Code Playgroud)
这就是我所看到的将最后提交移动到另一个分支的解决方案:
git checkout master
git branch my_new_branch
git reset <commit_id>
Run Code Online (Sandbox Code Playgroud)
我的问题是:在将提交移动到新分支后,我是否能够成功推送到GitHub?如果是这样,它还需要做除了这三个命令之外的其他操作吗?
说我的gerrit中的当前日志如下所示:
我的目标是创建一个新标记(v1.73.0),它应该包含commit8和commit9并将其推送到origin.我被告知要根据最新的稳定标签创建一个新的本地分支,并挑选必要的提交并对其进行标记.但是,我有一些问题将标签推送到主人.
这就是我所做的:
...现在,我如何推动v1.73.0掌握?
结果: