来源:https://juejin.im/post/5ee649ffea2b5108
符号解释:
将工作区的文件添加到暂存区
www.liaoxuefeng.com/wiki/…
git-scm.com/book/zh/v2/…
www.jianshu.com/p/4a8f4af4e…
juejin.im/post/5a5438…
「使用场景:」 当你接到一个修复紧急 bug 的任务时候,一般都是先创建一个新的 bug 分支来修复它,然后合并,最后删除。但是,如果当前你正在开发功能中,短时间还无法完成,无法直接提交到仓库,这时候可以先把当前工作区的内容 一下,然后去修复 bug,修复后,再 ,恢复之前的工作内容。
常用于发布版本
www.liaoxuefeng.com/wiki/…
如果在配置 .gitignore 文件之前就把某个文件上传到远程仓库了,这时候想把远程仓库中的该文件删除,此时你配置 .gitignore 文件也没有用,因为该文件已经被追踪了,但又不想在本地删除该文件后再重新提交到远程仓库,这时候可以使用 命令取消该文件的追踪,这样下次提交的时候,git 就不会再提交这个文件,从而远程仓库的该文件也会被删除
checkout 详解


reset 详解
:将当前的分支重设()到指定的 或者 (默认,如果不显示指定 ,默认是 ,即最新的一次提交),并且根据 有可能更新索引和工作目录。 的取值可以是 、、、、 。
「我们可以用 查看历史命令,这样就可以看到之前新版本的 commit_id ,然后 就可以回到之前的新版本代码」
revert 详解
命令用来「撤销某个已经提交的快照(和 reset 重置到某个指定版本不一样)」。它是在提交记录最后面加上一个撤销了更改的新提交,而不是从项目历史中移除这个提交,这避免了 Git 丢失项目历史。
「撤销(revert)应该用在你想要在项目历史中移除某个提交的时候」。比如说,你在追踪一个 bug,然后你发现它是由一个提交造成的,这时候撤销就很有用。
「撤销(revert)被设计为撤销公共提交的安全方式,重设(reset)被设计为重设本地更改。」
因为两个命令的目的不同,它们的实现也不一样:重设完全地移除了一堆更改,而撤销保留了原来的更改,用一个新的提交来实现撤销。「千万不要用 回退已经被推送到公共仓库上的 提交,它只适用于回退本地修改(从未提交到公共仓库中)。如果你需要修复一个公共提交,最好使用 git revert」。
发布一个提交之后,你必须假设其他开发者会依赖于它。移除一个其他团队成员在上面继续开发的提交在协作时会引发严重的问题。当他们试着和你的仓库同步时,他们会发现项目历史的一部分突然消失了。一旦你在重设之后又增加了新的提交,Git 会认为你的本地历史已经和 origin/master 分叉了,同步你的仓库时的合并提交(merge commit)会使你的同事困惑。
「将指定的提交 commit 应用于当前分支」(可以用于恢复不小心撤销(revert/reset)的提交)
有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。也许是第三方库,或者你独立开发的,用于多个父项目的库。现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。如果将另外一个项目中的代码复制到自己的项目中,那么你做的任何自定义修改都会使合并上游的改动变得困难。「Git 通过子模块来解决这个问题,允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。」
blog.csdn.net/LitongZero/…
juejin.im/post/5b4328…
「预发布环境的作用:」 预发布环境是正式发布前最后一次测试。因为在少数情况下即使预发布通过了,都不能保证正式生产环境可以100%不出问题;预发布环境的配置,数据库等都是跟线上一样;有些公司的预发布环境数据库是连接线上环境,有些公司预发布环境是单独的数据库;如果不设预发布环境,如果开发合并代码有问题,会直接将问题发布到线上,增加维护的成本。
「如果没有在 目录下生成 文件的话,则要手工创建 」
更多钩子:git-scm.com/book/zh/v2/…
这时候可以回滚代码,重新拉取。
在 git 2.9.2 之后,不可以合并没有相同结点的分支(分支之间自仓库建立后,从来没有过互相拉取合并)。如果需要合并两个不同结点的分支,如下:
这个功能是可以让大家不要把仓库上传错了,如果会加上这个代码,那么就是自己确定了上传。旧版本的 Git 很容易就把代码传错了,现在可以看到,如果上传的不是之前的,那么就需要加代码上传。正常情况下,都是先建立仓库,然后切多个分支,分支先去拉取合并主分支的内容,然后再各自开发, 如果建立仓库后,各个分支没有区拉取主分支的代码,之后各个分支之间想要合并时就会报错。
当远程分支和本地分支发生冲突后,git 保持合并状态,你如果没有去解决完所有的冲突,那么 git 会一直保持这个状态,你就无法再提交代码。只有先解除合并状态后,才能继续提交。执行命令前最好先备份一下,有可能本地做的修改会被远程分支覆盖掉。
如果在配置 .gitignore 文件之前就把某个文件上传到远程仓库了,这时候想把远程仓库中的该文件删除,此时你配置 .gitignore 文件也没有用,因为该文件已经被追踪了,但又不想在本地删除该文件后再重新提交到远程仓库,这时候可以使用 命令取消该文件的追踪,这样下次提交的时候,git 就不会再提交这个文件,从而远程仓库的该文件也会被删除
之前没有进行过关联,即没有通过 clone 远程项目到本地再开始做项目,而是先本地新建了一个项目,然后想传到远程仓库上。
www.liaoxuefeng.com/wiki/…
测试 ssh 是否能够连接成功
「使用 ssh 协议」
一般为 C:퇬Administrator,也可以是你自己创建的系统用户名目录,文件名为 .git-credentials。由于在 Windows 中不允许直接创建以 "." 开头的文件,所以用命令行创建该文件。
可以在当前目录下,添加一个 .gitkeep 文件
github.com/jawil/notes…
原因在于 Git 在使用过程中遭遇了奔溃,部分被上锁资源没有被释放导致的。
「解决方案:」 进入项目文件夹下的 .git 文件中(显示隐藏文件夹或)删除 index.lock 文件即可。
只会将被 「tracked」 的文件添加到暂存区并提交,而将文件添加到 git 管理是要使用 git add 命令,将新的文件 「tracked」 。(新建了文件之后,idea 会提示你是否需要加到 git 管理中。选择记住后,之后 idea 默认都会把新建的文件「tracked」 化)
从合并后的代码来看,结果都是一样的,区别就在于 会让 git 生成一个新的提交对象。为什么要这样?通常我们把 master 作为主分支,上面存放的都是比较稳定的代码,提交频率也很低,而 feature 是用来开发特性的,上面会存在许多零碎的提交,快进式合并会把 feature 的提交历史混入到 master 中,搅乱 master 的提交历史。所以如果你根本不在意提交历史,也不爱管 master 干不干净,那么 其实没什么用。
segmentfault.com/q/…
juejin.im/post/5a5438…
blog.csdn.net/liuxiaoheng…
segmentfault.com/a/…
segmentfault.com/a/…
www.zhihu.com/question/57…
www.playpi.org/.…
想要 merge 别人的分支时:
segmentfault.com/a/…
「可能出现的报错:」
在控制面板里找到凭据管理器,选中 Windows 凭据,找到 git 的凭据,点击编辑,输入所用 github 的正确用户名和密码。
可能你的项目名路径中包含了中文名,需要替换成英文名
如果两个人都对同一个文件重命名,此时会起冲突,git 不会自动处理,需要开发者自身去解决冲突
segmentfault.com/a/…
www.jianshu.com/p/3719dae37…
在 Git 中创建分支,是必须有一个父节点的,也就是说必须在已有的分支上来创建新的分支,如果工程已经进行了一段时间,这个时候是无法创建空分支的。但是有时候就是需要创建一个空白的分支。
该命令会生成一个叫 的分支,该分支会包含父分支的所有文件。但新的分支不会指向任何以前的提交,就是它没有历史,如果你提交当前内容,那么这次提交就是这个分支的首次提交。
想要空分支,所以需要把当前内容全部删除,用 git 命令
先删除该分支,然后再新建一个空的分支(分支名就是删除的分支名)~~
https://mp.weixin..com/s/1z0Ej75TmBcKw2ng9NZoZA
到此这篇git上传到指定目录(git上传到指定目录中)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/32688.html