偶尔我会把一个DVD-rip放到一个网站项目中,然后不小心git commit -a -m ...,然后,zap,回购邮件被2.2演出臃肿.下次我做了一些编辑,删除了视频文件,并提交了所有内容,但是历史记录中的压缩文件仍然存储在存储库中.
我知道我可以从那些提交开始分支并将一个分支重新绑定到另一个分支.但是我应该怎么做才能将2个提交合并在一起,以便大文件没有在历史记录中显示并在垃圾收集过程中被清除?
我意外地将一个不需要的文件(filename.orig在解析合并时)提交到我的存储库几个提交之前,直到现在我才注意到它.我想从存储库历史记录中完全删除该文件.
是否可以重写更改历史记录,以便filename.orig从未首先添加到存储库中?
我有两个分支,email和staging.staging是最新的,我不再需要email分支中的旧更改,但我不想删除它们.
所以,我只是想的所有内容转储staging到email让他们都指向同一个commit.那可能吗?
我在web.config文件中添加了以下设置,以启动对外部系统的API调用.所以我存储API URL +用户名+密码如下: -
<appSettings>
<add key="ApiURL" value="https://...../servlets/AssetServlet" />
<add key="ApiUserName" value="tmsservice" />
<add key="ApiPassword" value="test2test2" />
Run Code Online (Sandbox Code Playgroud)
然后在我的action方法中,我将在构建Web客户端时引用这些值,如下所示: -
public ActionResult Create(RackJoin rj, FormCollection formValues)
{
XmlDocument doc = new XmlDocument();
using (var client = new WebClient())
{
var query = HttpUtility.ParseQueryString(string.Empty);
foreach (string key in formValues)
{
query[key] = this.Request.Form[key];
}
query["username"] = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiUserName"];
query["password"] = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiPassword"];
string apiurl = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiURL"];
Run Code Online (Sandbox Code Playgroud)
但在这一点上,我将公开用户名和密码,这些可以被用户捕获,所以我的问题是如何保护API用户名和密码?
在git,vscode终端中删除node_modules时出错
>git rm -r --cached node_modules
Run Code Online (Sandbox Code Playgroud)
错误:
致命的:pathspec'node_modules'与任何文件都不匹配
我git-filter-repo通过安装scoop,尝试了多个git filter-repo命令,例如git filter-repo -h,它们都没有记录任何内容,没有警告或错误,只是没有记录。
尝试重新启动、重新安装并在另一台 Windows 10 计算机上安装它,全部重现。
git-filter-repo: v2.33.0
git: v2.33.0.windows.2
python: v3.9.7
scoop:
Current Scoop version:
09200504 (HEAD -> master, origin/master, origin/HEAD) reset: skip when app instance is running (#4359)
'main' bucket:
b71f4a842 (HEAD -> master, origin/master, origin/HEAD) nunit-extension-vs-project-loader: Update to version 3.9.0
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
我提交了一些名称中包含':'和'"'字符的文件,这些文件在Windows上无效.当我尝试从Windows机器上git pull时,它会给我一个错误消息.
有没有办法在Windows机器上重命名这些文件?或者还有其他解决方法吗?
我从这个aritcle学习"树"和"索引":通过实例学习Git Internals
但是当谈到"git filter-branch"命令时,我不知道"--tree-filter"和"--index-filter"之间有什么区别.
我知道这个问题有数千条线索。
但我发现了一些非常奇怪的事情。
如果您在 GitHub 上创建项目,请进行一些提交。
假设提交 1、2、3、4、5。
后来,您意识到要将某些内容更改为提交 3。
由于您在自己的分支中工作,因此重写历史记录没有问题。
所以让我们这样做:(基于这个stackoverflow 答案)
git rebase --interactive 'bbc643cd^'
// Modify 'pick' to 'edit' into interactive prompt and :
git commit --all --amend --no-edit
git rebase --continue
git push -f
Run Code Online (Sandbox Code Playgroud)
伟大的!错误已更正。历史已被重写,因此bbc643cd现在提交lkqjfhchc。
您可以在 GitHub 上查看源代码,一切都会更新。
但还是有人可以在 GitHub 上找到它!
访问 URL: https: //github.com/your-nickname/your-project/commit/bbc643cd ...(完整提交哈希),您就会找到它!
我们怎样才能永久删除这个提交呢?
谢谢你的帮助!
git ×8
git-rebase ×2
windows ×2
asp.net ×1
asp.net-mvc ×1
c# ×1
git-rm ×1
github ×1
iis ×1
linux ×1
python ×1
web-config ×1