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。...status,会跟前面一次得到一样的结果,因此我们创建的是一个pdb后缀的文件,而在.gitignore文件中已经屏蔽了所有pdb后缀的文件,因此git操作会自动忽略这个文件。...可以看到此时的git状态中已经补充了对该pdb文件的更新,如果要传到线上版本,补充一步git commit -m 'xxx'和git push即可。...但是如果存在一些冲突,比如我们需要传到远程仓库上的文件的文件名,刚好在屏蔽的关键字清单内,此时就需要使用到本文介绍的一些操作方法,来强制上传文件。
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 是一个很好的版本控制工具,当然驾驭起来相比 SVN 要稍微复杂一些。初入 Git,难免有一些问题。比如我们不小心将某个文件加入了版本控制,但是突然又不想继续跟踪控制这个文件了,怎么办呢?...其实方法也是很简单的。使用git update-index即可。...不想继续追踪某个文件 1 git update-index --assume-unchanged your_file_path 如果想再次继续跟踪某个文件 1 git update-index --no-assume-unchanged
使用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 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,即当前版本,所以实际上没有任何修改,
查看已暂存、未暂存的变更 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 自动添加,甚至不想这些文件被显示在未跟踪的文件列表下面。
创建本地版本库 版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以...显示隐藏文件夹 向本地版本库添加文件 版本库:”.git“目录就是版本库,将来文件都需要保存到版本库中。工作目录:包含”.git“目录的目录,也就是.git目录的上一级目录就是工作目录。...文件的修改与提交 首先打开HelloWorld.txt文件,进行修改,添加一些内容。 ? 可以看到文件出现了叹号。 ?...文件的修改与提交4 ? 文件的修改与提交5 点击关闭。 同样的操作,我们再更改一次。 ? 文件的修改与提交6 在空白处右键,选择TortoiseGit(T)------>显示日志; ?...可以看到修改信息。 ? 文件的修改与提交8 选中带有叹号的两个文件,右键------->比较版本差异; ? 文件的修改与提交9 双击这个文件; ? 文件的修改与提交10 ? 就可以看到差异了。
换句话说,所有已跟踪文件在上次提交后都未被更改过。 此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪状态的新文件,否则 Git 会在这里列出来。...如果之前并不存在这个文件,使用 git status 命令,你将看到一个新的未跟踪文件: $ git status On branch master Untracked files: (use "...git add 命令使用文件或目录的路径作为参数;如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。 3、暂存已修改文件 现在我们来修改一个已被跟踪的文件。...LICENSE.txt 新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。...5、忽略文件 一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。
将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。 提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。...2、记录每次更新到仓库 工作目录下的每一个文件都不外乎这两种状态:已跟踪 或 未跟踪。...换句话说,所有已跟踪文件在上次提交后都未被更改过。 此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪状态的新文件,否则 Git 会在这里列出来。...比如 README $ git add README 忽略文件 我们有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。...doc/server/arch.txt doc/*.txt # 忽略 doc/ 目录及其所有子目录下的 .pdf 文件 doc/**/*.pdf 查看已暂存和未暂存的修改 如果 git status
请注意,旧版本的 Git 默认忽略已删除的文件;如果要添加已修改或新增的文件但忽略已删除的文件,请使用--no-all选项。...如果未使用-u选项,则会显示未跟踪的文件和目录(即与指定normal相同),以帮助您避免忘记添加新创建的文件。由于在文件系统中查找未跟踪文件需要额外的工作,因此在大型工作树中此模式可能需要一些时间。...子模块具有未跟踪的文件,因为子模块中的修改内容或未跟踪文件无法通过超级项目中的git add添加以准备提交。 m 和 ? 递归应用。例如,如果子模块中的嵌套子模块包含未跟踪的文件,则报告为 ?...对于二进制文件,输出两个-而不是0 0。 --shortstat 仅输出--stat格式的最后一行,其中包含已修改文件的总数,以及已添加和已删除行的总数。...当 HEAD 与索引中记录的相同时,子模块被认为是最新的,未修改跟踪文件,并且子模块工作树中不存在未被忽略的未跟踪文件。忽略的文件被认为是可消耗的,并且不会阻止子模块的工作树被删除。
提交更改 2.1 显示工作目录中已修改的文件,准备提交 $ git status 2.2 将文件添加到暂存区,准备提交 $ git add [文件名] 2.3 将所有已修改的文件添加到暂存区,准备提交...reset [文件名] 2.9 恢复到上次提交的状态 $ git reset --hard 2.10 查看未暂存的更改 $ git diff 2.11 查看已暂存但未提交的更改 $ git diff...临时提交 8.1 保存已修改且已暂存的更改 $ git stash 8.2 查看存储的更改列表 $ git stash list 8.3 恢复最新的暂存更改 $ git stash pop 8.4 删除最新的暂存更改...忽略文件 在 .gitignore 文件中,指定不需要 Git 跟踪的文件 /logs/* # "!" 表示不忽略 !...检查 Git 配置 $ git config --list 16. 删除未跟踪的文件和目录 $ git clean -fd 17.
git update-index 处理文件的方式可以使用各种选项进行修改: OPTIONS --add 如果指定的文件不在索引中,则添加它。默认行为是忽略新文件。...如果需要在索引中修改此文件,Git 将失败(优雅地),例如合并时提交;因此,如果上游更改了假定未跟踪文件,则需要手动处理该情况。...请注意,在路径上设置此位并不意味着 Git 将检查文件的内容以查看它是否已更改 - 它使 Git 省略任何检查并假设它已更改而不是。...更改core.untrackedCache配置变量时,下次命令读取索引时,会将未跟踪的高速缓存添加到索引中或从索引中删除;当使用--[no-|force-]untracked-cache时,未跟踪的缓存会立即添加到索引中或从索引中删除...这使得 git 可以避免必须 lstat()每个文件来查找修改过的文件。 与未跟踪的缓存一起使用时,它可以通过避免扫描整个工作目录以查找新文件的成本来进一步提高性能。
请记住,你工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。...已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。...工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。 初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。...换句话说,所有已跟踪文件在上次提交后都未被更改过。 此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪状态的新文件,否则 Git 会在这里列出来。...LICENSE.txt 新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M标记。
下面,统一将工作副本简称为文件进行介绍。 2.1 文件周期 我们所有的文件都其实包括两种状态: 已跟踪:指文件已经被git记录,并纳入版本控制的文件。...而已跟踪还有下面两种状态 未修改:文件被git记录,但是没有进行编辑操作 已修改:文件被修改,但是暂时存储在暂存区,没有提交更改记录给仓库。...git restore :将在工作空间但是不在暂存区的文件撤销更改(内容恢复到没修改之前的状态) git restore --staged XXXX:将暂存区的文件从暂存区撤出,但不会更改文件的内容。...:新添加未跟踪的文件(我们需要add操作) A:新添加到暂存区的文件(添加后没有修改过) M:已经修改但是未暂存(仓库已经跟踪过,但是本次修改还没有存储到暂存) MM:已经修改,暂存后又进行了修改(存在暂存区域...,也还存在未暂存部分,就是有两个版本) 其中还有一个关键就是忽略,ignore文件。
二 仓库相关 2.1 检查状态 工作目录下的文件只有两种状态:已跟踪和未跟踪。 已跟踪:指文件在上一次快照中有对应的记录,当前状态可能处于未修改,已修改或已放入暂存区。...未跟踪:目录中的除已跟踪的其他文件都属于未跟踪文件,既不存在于上次快照的记录中,也没有放入暂存区。 未跟踪——>已跟踪未修改——>暂存区(修改后暂存)——>git仓库(提交更新) ?...git add:此命令可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。即“添加内容到下一次提交中”,而不是“将一个文件添加到项目中”。...:新添加暂未跟踪文件; A:新添加到暂存区中的文件; M:已修改过的文件,若出现在右边,则表示该文件被修改了但是还没放入暂存区,若出现在左边,则表示该文件被修改了并放入了暂存区。...,但对CONTRIBUTING.md文件未暂存,然后查看状态,是已修改未暂存。
领取专属 10元无门槛券
手把手带您无忧上云