git仓库提交总有一些文件不想提交到远程,而git忽略的文件也有但是不能动 因为.gitignore 文件的东西变得话 会提交到仓库 我本地一些config的配置我不想每次提交都把勾去掉 所以git...设置 忽略仅仅我本地的一些文件的上传 1、将文件修改忽略 首先进入到这个文件夹的所在的目录然后再设置忽略文件夹的提交 git update-index --assume-unchanged [file-path...] 2、取消文件忽略 git update-index --no-assume-unchanged config.php 3、git 强制替换本地文件 分三步 git fetch --all git...fetch从远程下载最新的,而不尝试合并或rebase任何东西。...git reset --hard origin/master 将主分支重置为您刚刚获取的内容。
1、将文件修改忽略 git update-index --assume-unchanged FILENAME 2、取消文件忽略 git update-index --no-assume-unchanged... FILENAME 如果文件未上传到库中,并为提交到本地版本库中记录,最好使用: .gitignore
而我的项目 Demo 项目目录是在自己管理的一个统一的存放项目的目录下的,如果按他这个格式需要把 SDK 存放到统一的项目目录的上一层才可以,否则我就要修改 Visual Studio 的解决方案配置,...终于让我找到一个办法就是临时修改这个文件,只在本地暂存,而且提交的时候不会提示该文件被更新了。神奇的 git 就是这么人性化,使用如下命令设置你需要临时忽略的文件。...git update-index --assume-unchanged project.sln 而当你需要真的修改这个文件的时候,把他从临时忽略列表再拉出来就好了,使用如下命令: git update-index...--no-assume-unchanged project.sln 这样就完美的解决了我们两个之间冲突的问题,当你这样临时忽略一个文件后,在 Windows 下 TortoiseGit 客户端会显示一个灰色的图标以代表这个文件被临时忽略了...,与彻底忽略的灰白色图标是有差别的: ?
技术背景 在git操作中,有时候为了保障线上分支的简洁性,会在.gitignore文件中屏蔽一些关键词,比如可以加一个*.txt来屏蔽掉项目中所有带txt后缀的文件,还可以加上*test*来屏蔽所有的本地测试文件或者目录...那么如果想在被屏蔽的文件中找几个特殊案例,传到线上版本去,要如何操作呢? 操作流程 在.gitignore文件中添加屏蔽关键词,比如我们添加一个pdb后缀的屏蔽关键词:*.pdb。...首先我们进入一个空的目录,并创建一个pdb后缀的文件: $ ll total 8 drwxr-xr-x 2 dechin dechin 4096 Jun 16 09:25 ./ drwxr-xr-x 7...status,会跟前面一次得到一样的结果,因此我们创建的是一个pdb后缀的文件,而在.gitignore文件中已经屏蔽了所有pdb后缀的文件,因此git操作会自动忽略这个文件。...可以看到此时的git状态中已经补充了对该pdb文件的更新,如果要传到线上版本,补充一步git commit -m 'xxx'和git push即可。
Git 是一个很好的版本控制工具,当然驾驭起来相比 SVN 要稍微复杂一些。初入 Git,难免有一些问题。比如我们不小心将某个文件加入了版本控制,但是突然又不想继续跟踪控制这个文件了,怎么办呢?...其实方法也是很简单的。使用git update-index即可。...不想继续追踪某个文件 1 git update-index --assume-unchanged your_file_path 如果想再次继续跟踪某个文件 1 git update-index --no-assume-unchanged
git 不再追踪文件改动 git update-index --assume-unchanged filePath git 恢复追踪文件改动 git update-index —no-assume-unchanged...filePath git 删除被管理的文件 #不会删除本地文件 git rm —-cached filePath git 删除被管理的文件夹 git rm -r -f —-cached filePath
使用git的时候 , 如果我们在自己的工作区中修改了代码 , 既没有git add , 更没有git checkout , 想要恢复成修改之前的样子 用 git checkout git checkout...文件 , 恢复某个文件
git 不再追踪文件改动 git update-index –assume-unchanged filePath git 恢复追踪文件改动 git update-index —no-assume-unchanged...filePath git 删除被管理的文件 git rm —cached filePath git 删除被管理的文件夹 git rm -r -f —cached filePath Git 是一个很好的版本控制工具...初入 Git,难免有一些问题。比如我们不小心将某个文件加入了版本控制,但是突然又不想继续跟踪控制这个文件了,怎么办呢? 其实方法也是很简单的。使用git update-index 即可。...不想继续追踪某个文件 git update-index --assume-unchanged your_file_path 如果想再次继续跟踪某个文件 git update-index --no-assume-unchanged
Git忽略本地的文件修改,保留其在远程仓库的状态 项目中的一些配置文件,需要在本地根据实际情况配置和修改,但同时这些配置仅在本地使用,并不想提交到远程仓库,这个时候仅使用.gitignore就办不到了...如引言中的使用场景,在项目中有一些配置文件在远程仓库存在,但是本地的修改并不具有普适性,因此是不需要提交到远程仓库的,天真的我一开始将项目拉下后,直接在.gitingnore中添加了相关文件,但是在修改后发现...> 查看被忽略的跟踪文件 git ls-files -v | grep '^h ' 恢复忽略文件,重新被版本控制 git update-index --no-assume-unchanged <file...但是查看git tree并没有任何跟踪文件是没有保存和提交的状态,也就是说之前被设置忽略的文件,犹如掩耳盗铃般,只是不被提交,但是在merge、checkout的时候还是会被提示覆盖风险而导致git操作失败...git update-index --assume-unchanged,忽略不想提交的文件(忽略跟踪)
git 如何删除已经 add 的文件 ( 如何撤销已放入缓存区文件的修改) 使用 git rm 命令即可,有两种选择: 一种是 git rm --cached "文件路径",不删除物理文件,仅将该文件从缓存中删除...git --如何撤销已放入缓存区(Index区)的修改 修改或新增的文件通过 git add --all命令全部加入缓存区(index区)之后,使用 git status 查看状态 (git status...-s 简单模式查看状态,第一列本地库和缓存区的差异,第二列缓存区和工作目录的差异), 提示使用 git reset HEAD 来取消缓存区的修改。...不添加参数,撤销所有缓存区的修改。 另外可以使用 git rm --cached 文件名 ,可以从缓存区移除文件,使该文件变为未跟踪的状态, 同时下次提交时从本地库中删除。...注: 没有带参数的 git reset 命令,默认执行了 --mixed 参数,即用reset版本库到指定版本,并重置缓存区,在上面的命令中指定的目录版本是HEAD,即当前版本,所以实际上没有任何修改,
请注意,旧版本的 Git 默认忽略已删除的文件;如果要添加已修改或新增的文件但忽略已删除的文件,请使用--no-all选项。...子模块具有未跟踪的文件,因为子模块中的修改内容或未跟踪文件无法通过超级项目中的git add添加以准备提交。 m 和 ? 递归应用。例如,如果子模块中的嵌套子模块包含未跟踪的文件,则报告为 ?...对于二进制文件,输出两个-而不是0 0。 --shortstat 仅输出--stat格式的最后一行,其中包含已修改文件的总数,以及已添加和已删除行的总数。...--diff-filter=[(A|C|D|M|R|T|U|X|B)…[*]] 仅选择已添加(A),复制(C),已删除(D),已修改(M),已重命名(R)的文件,其类型(即常规文件,符号链接,子模块...当 HEAD 与索引中记录的相同时,子模块被认为是最新的,未修改跟踪文件,并且子模块工作树中不存在未被忽略的未跟踪文件。忽略的文件被认为是可消耗的,并且不会阻止子模块的工作树被删除。
git update-index 处理文件的方式可以使用各种选项进行修改: OPTIONS --add 如果指定的文件不在索引中,则添加它。默认行为是忽略新文件。...相反,此选项设置/取消设置路径的“假定未更改”位。当“假设未更改”位打开时,用户承诺不更改文件并允许 Git 假定工作树文件与索引中记录的文件匹配。...如果需要在索引中修改此文件,Git 将失败(优雅地),例如合并时提交;因此,如果上游更改了假定未跟踪文件,则需要手动处理该情况。...请注意,在路径上设置此位并不意味着 Git 将检查文件的内容以查看它是否已更改 - 它使 Git 省略任何检查并假设它已更改而不是。...更改core.untrackedCache配置变量时,下次命令读取索引时,会将未跟踪的高速缓存添加到索引中或从索引中删除;当使用--[no-|force-]untracked-cache时,未跟踪的缓存会立即添加到索引中或从索引中删除
# 仅将某些文件添加到暂存区, 例如:仅添加所有以 'test*' 开头的文件 git add test* git status # 检查仓库状态 git status git commit #...提交更改 git commit # 提交带有消息的更改 git commit -m "This is a commit message" git log # 查看提交历史 git log # 查看提交历史和显示相应的修改...git diff # 在使用 diff 提交之前所做的更改 git diff git diff some_file.js git diff --staged git rm # 删除跟踪文件 git...# 还原未暂存的更改 git checkout file_name git reset # 还原暂存区的更改 git reset HEAD file_name git reset HEAD -p...--merged master | grep -v "master" | xargs -n 1 git branch -d .gitignore 指明 Git 应该忽略的故意不跟踪的文件的文件,比如
1.修改最近的提交 git commit --amend —-amend 允许你把阶段性更改(例如添加被遗忘的文件)附加到上一次提交。...2.以交互方式添加文件的选定部分 git add -p -p (或 —patch) 允许以交互的形式选择每个跟踪文件中要提交的部分。这样每次提交仅包含相关的更改。...更多信息:git help stash 4.隐藏未跟踪的文件 git stash -u 在默认情况下,存储时不包括那些未跟踪的文件。为了改变这种行为并包括那些文件,你需要使用 -u 参数。...还有一个 -a(-all)参数可以存储所有未跟踪和忽略的文件,这种操作通常能是你不需要的。...8.显示更改 git diff --staged 该命令显示所有已阶段化的更改(已添加到索引中的更改),而与 git diff 相比,后者仅显示工作目录中的更改(索引中没有更改)。
,修改和删除索引条目以匹配工作树 --no-all, --ignore-removal # 通过添加索引未知的新文件和工作树中修改的文件来更新索引, 但忽略已从工作树中删除的文件当没有使用...# 除了已更改的文件名称之外, 还会显示正在执行的文本更改 -u[], --untracked-files[=] # 显示未跟踪的文件 --ignore-submodules...,不Munge时间路径名,并使用完全无效的输出字段终止符 --name-only # 仅显示已更改文件的名称...只有干净的工作树(没有未跟踪的文件,并且没有修改跟踪的文件)可以被删除 unlock # 解锁一个工作树,允许它被修剪,移动或删除...# 除了在工作树中跟踪文件中搜索外,还可以在未跟踪文件中搜索 --no-exclude-standard # 通过不尊重.gitignore 机制来搜索被忽略的文件
忽略文件配置:添加.gitignore文件 文件 .gitignore 的格式规范如下: 所有空行或者以 # 开头的行都会被 Git 忽略。 可以使用标准的 glob 模式匹配。...修改 git add | # 添加指定文件, 指定目录(包括子目录)到暂存区 git add . # 添加当前目录的所有文件到暂存区 # -p(或-patch)允许交互选择要提交的每个跟踪文件的各个部分...git add . && git stash # 将新的储藏推送到栈上 git stash save 'message' # 储藏修改,并留下stash信息 # -p(或-patch)允许交互选择要提交的每个跟踪文件的各个部分...这样每个提交只包含相关的更改。 git stash -p # 默认情况下,当存储时,不包括未跟踪的文件。 为了更改该行为并包含这些文件,您需要使用-u参数。...还有-a(-all)可以完全存储未跟踪和忽略的文件,这可能是您通常不需要的东西。
与在进行更改之前制作配置文件副本的旧备用数据库相反,etckeeper允许您使用Git,Mercurial,Bazaar或Darcs存储库跟踪修改,就像您对软件开发项目所做的那样。...没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。 etckeeper仅跟踪文件权限,元数据和更改。...该.git目录包含几个配置和描述文件以及其他用于Git本身的子目录。该.gitignore文件指定git应忽略的明确未跟踪文件,旨在由etckeeper完整管理。不建议手动编辑,但有一个例外。...sudo nano .gitignore 该文件的最后一行# end section managed by etckeeper将被读取。添加要忽略的文件的文件名,在此行之上每行添加一个。...无论您选择哪种VCS,etckeeper都会帮助您掌握配置文件,并确保在需要撤消更改或修改功能时始终可以回滚到先前的状态。
换句话说,所有已跟踪文件在上次提交后都未被更改过。 此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪状态的新文件,否则 Git 会在这里列出来。...未跟踪的文件意味着 Git 在之前的快照(提交)中没有这些文件;Git 不会自动将之纳入跟踪范围,除非你明明白白地告诉它“我需要跟踪该文件”, 这样的处理让你不必担心将生成的二进制文件或其它不想被跟踪的文件包含进来...git add 命令使用文件或目录的路径作为参数;如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。 3、暂存已修改文件 现在我们来修改一个已被跟踪的文件。...LICENSE.txt 新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。...5、忽略文件 一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。
查看已暂存、未暂存的变更 3.7. 查看提交历史 4. 忽略文件 5. 撤销操作 5.1. 刚才的commit漏了一个文件 5.2. 刚才失误暂存了,想取消 5.3....Git 文件状态 工作目录下的每一个文件都处于两种状态之一: 已跟踪(tracked) 未修改(unmodified) 已修改(modified) 已暂存(staged) 未跟踪(untracked)..."Untracked files":未跟踪的文件 git status -s // 紧凑形式显示状态 注:文件列表旁边的标记是分成两列的 左列标明了文件是否已缓存 右列标明了文件是否已修改 3.3....查看已暂存、未暂存的变更 如果想要知道具体的修改内容,而不仅仅是泛泛的知道更改改了哪些文件,可以使用 git diff 命令。...忽略文件 很多时候,你并不希望某一类文件被 Git 自动添加,甚至不想这些文件被显示在未跟踪的文件列表下面。
对于二进制文件,输出两个-而不是0 0。 --shortstat 仅输出--stat格式的最后一行,其中包含已修改文件的总数,以及已添加和已删除行的数量。...--diff-filter=[(A|C|D|M|R|T|U|X|B)…[*]] 仅选择已添加(A),复制(C),已删除(D),已修改(M),已重命名(R)的文件,其类型(即常规文件,符号链接,子模块...当使用“未跟踪”时,如果子模块仅包含未跟踪的内容(但仍会扫描修改的内容),则子模块不会被视为脏。...对于二进制文件,输出两个-而不是0 0。 --shortstat 仅输出--stat格式的最后一行,其中包含已修改文件的总数,以及已添加和已删除行的数量。...当使用“未跟踪”时,如果子模块仅包含未跟踪的内容(但仍会扫描修改的内容),则子模块不会被视为脏。
领取专属 10元无门槛券
手把手带您无忧上云