Git相关命令及用法
add commit push
git add *
git commit -m ""
git push -u origin branch
在删除某一些文件时, 应使用git add .
. 否则, 会出现Changes not staged for commit: ...
添加子模块
子模块的操作必须非常小心, 因为其中有很多坑.
第一次添加子模块
git submodule add git://github.com/chneukirchen/rack.git rack
删除某个子模块
git rm --cached pathOfSubmodule
然后删除_config.yml以及.git/config文件中相关记录
更改子模块后提交对子模块的修改
进入子模块所在目录
git add *
git commit -m ""
git push
主项目提交
我们可以直接像正常git文件一样的流程进行提交, 但是如果我们忘记提交子模块的变动, 而新的项目和子模块的变动又相关. 那么其他人从远程仓库中clone的文件可能并不能正确运行(缺少必要的子模块变动).
所有推荐使用以下两种方法:
1. git push --recurse-submodules=check
. 若有子模块的变动没有推送, 那么该push
会失败.
2. git push --recurse-submodules=on-demand
. 若有子模块的变动没有推送, 那么它会先推送子模块的变动, 然后再推送主项目.
子模块的更新
其他人如果对子模块进行了修改, 在git pull
之后, 再调用以下git submodule update
更新子模块.
调用git submodule update
也更新子模块的相关内容, 但是会将子模块留在一个称作 detached HEAD
的状态. 这意味着没有本地工作分支(例如 “master”)跟踪改动。 所以你做的任何改动都不会被跟踪。即使你使用了commit提交了一些变动, 在你下一次使用git submodule update
时, 这些变动会全部丢失.
所以需要进入每一个你希望对其进行修改的子模块,git checkout branchName
检出一个分支. 从远程仓库中更新本地文件时, 使用git submodule update --remote --merge
, 也可以使用--rebase
.
如果忘记了--rebase
或者--merge
, git会将子模块更新为远程仓库上的状态, 而且该项目将再一次进入 detached HEAD
的状态. 解决方法:
- 检出包含之前本地更改的分支
- 然后手动的merge或者rebase任何一个远程分支即可.
即使没有提交子模块的更改也某有问题, 此时git只会抓取更改, 而不会覆盖本地内容.
克隆一个带子模块的项目
克隆一个包含子模块的项目.git clone
下来之后, 该子模块并不会被clone下来.需要调用以下两个命令:
1. git submodule init
来下载本地所需的子模块配置文件文件
2. git submodule update
来下载主项目中列出的合适的子模块提交
也可以使用git clone --recursivegit clone --recursive https://github.com/...
自动地初始化并更新仓库中的每一个子模块.
转载于:https://www.cnblogs.com/fei-hsueh/p/6106281.html
Git相关命令及用法相关推荐
- repo,git相关命令使用
###git download [https://git-scm.com/downloads] #repo: repo命令参数: abandon Permanently abandon a devel ...
- Git学习5:Git常用命令简明用法
不要使用git commit -a 该命令可以对本地所有的变更文件(包括对本地修改和删除的文件)执行提交操作,但是不包括未被版本库跟踪的文件. git命令补充说明 显示.git目录所在的位置 git ...
- git clean命令的用法
git clean命令用来从你的工作目录中删除所有没有tracked过的文件. git clean经常和git reset --hard一起结合使用. 记住reset只影响被track过的文件, 所以 ...
- git stash命令的用法
stash的字面意思:隐藏,储藏 当我们以多人协同工作的方式基于同一个github仓库进行开发时,免不了遇到多人同时在本机对同一文件进行编辑的情况出现. 看一个具体的场景,当我使用git pull时, ...
- git相关常用基本用法命令及分支操作指南命令
Git 基本操作 Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比. Git 常用的是以下 6 个命令:git clone.git push.git add .git commit.gi ...
- git remote 命令的用法
查看关联的远程仓库信息 # 查看关联的远程仓库的名称 git remote # 查看关联的远程仓库的详细信息 git remote -v 添加远程仓库的关联 远程仓库的名称一般 ...
- Git npm相关命令
Git 相关命令 查看用户名和密码 配置用户名和密码 查看git项目远程地址 添加git远程仓库 查看提交记录 查看已有tag 打标签 在某次提交记录上打标签 推送标签到远程 推送单个指定tag到远程 ...
- git常用命令操作方法
git命令–切换分支 https://blog.csdn.net/qq_38335037/article/details/82755912?utm_medium=distribute.pc_relev ...
- 【Git学习】 如何通过git log命令来打印出在两个commit之间的所有不同的author提交的记录
一.需求描述 每次集成提测,都会有一大批的人员合并代码到develop分支,然后jenkins编译完成之后,得写提测记录.之前负责提测的人员都是直接复制jenkins的修改记录页面的文字.如下所示: ...
最新文章
- 申请 SSL 证书 --Nginx 配置Https 最佳实践
- HTC Vive会是HTC的下一个增长引擎吗?
- matlab验证Ross随机过程(第二版)P19页的结果
- 学习笔记(52):Python实战编程-Radiobutton
- CNN框架的搭建及各个参数的调节
- 深度学习实践指南(五)—— 求解异或问题
- Leap手心发射线,碰撞点用小球表示,并用Line Renderer画出来
- matlab半峰宽计算公式,半峰宽单位换算(峰宽与半峰宽转换公式)
- Java时间与日期类(Calendar类的方法应用与打印日历)
- 在Ubuntu中安装中文输入法
- rpc服务器不可用自动重启,出现RPC服务器不可用的解决方法
- 教你学习JavaScript的this入门到进阶最全用法
- 【iOS】 app 的优化
- Kubernetes 中的 requests 和 limits详解
- linux强制移除pdf密码,linux-使用PDFtk删除pdf文件的最后一页?
- 数字孪生技术助力高炉数字化建设的可行性
- 如何计算Eden区的大小
- Bacon分解做交错DID数据、代码以及参考文献
- 360手机刷机:360N7刷机
- R语言使用mgcv包中的gam函数拟合广义加性模型(Generalized Additive Model,GAMs):从广义加性模型GAM中抽取学习到的样条函数(spline function)