git 子模块操作
子模块的操作通常是两个仓库之间的引用
假设 A仓库 是主的开发仓库,A需要引入一个模块 这个模块恰好在B仓库中,此时就需要将B看做子模块添加到A仓库中
1. 模块添加
1.1子仓库的URL 可以是 HTTPS 或者ssh 均可
1.2 路径是子仓库的 URL 和在父仓库中的相对路径
比如我想把B仓库克隆到A仓库AAA/BBB(最好在A仓库的根目录)
git submodule add B仓库URL AAA/BBB
git submodule add 子仓库URL 路径
运行成功后,可以在A仓库的更目录能看到.gitmodule 文件打开便能看到子模块的具体配置
2.代码更新
git submodule update
或者
git pull
3.模块的移除
3.1断开B仓库的引用 最好实在A仓库的根目录git submodule deinit 模块路径git submodule deinit -f 模块路径(文件夹)eg:git submodule deinit AAA/BBB3.2 删除本地引用git rm 模块路径git rm -f 模块路径(文件夹)eg:git rm AAA/BBB3.3 删除引用提交git commit
git add 区别
1.git add : 添加指定的文件到暂存区;
2.git add -A:(git add --all 的缩写)添加所有变更的文件到暂存区;
3.git add -u:(git add --update的缩写)添加被修改(modified)和被删除(deleted)文件,不包括新文件(new);
4.git add *: 添加新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件;
5.git add .: 会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤,但是git add * 会忽略.gitignore把任何文件都加入。git 放弃本地修改
1.没有add到本地仓库git checkout -- 1.xtx 取消本地1.txt修改git checkout . 取消本队所有修改
2.已经add到本地仓库git reset HEAD 1.xtx 取消本地仓库1.txt的加入缓存git reset HEAD . 取消本地仓库所有缓存git reset --soft HEAD--soft
不删除工作空间的改动代码 ,撤销commit,不撤销git add file--hard
删除工作空间的改动代码,撤销commit且撤销add3.已经提交了代码git reset --hard HEAD^ 回退上一版本git reset --hard commitid 回退制定版本(commitid)git rm file 从版本库中删除file
git revert $commitid 取消某一次已经上传的提交,并且形成新的提交分支操作:
git checkout -b test 本地新建本切换到test分支
git merage test 将test分支合并到当前分支
git branch -d/D test 删除test分支(远程or本地?)
git branch -a 查看本地所有分支
git branch -v 查看远程所有分支
git branch --merage 查看已近合并到当前分支的分支
git branch --no--merage 查看没有合并到当前分支的分支
创建新分支
1.创建本地/远程分支
git checkout -b xxxx
2.提交本地分支
git push origin xxxx
3.建立本地与远程分支关联
git pull
若报错
git branch --set-upstream-to=origin/xxxx xxxx
tag操作
git tag/ git tag -l 查看所有当前本地的标签
git tag test 创建本地tag
git push origin test 将test tag提交到远程仓库
git tag -d test 删除本地tag
git ls-remote --tag origin 查看远程仓库的tag当前commit打tag
标签名字:V1.0.1
注释说明:"第一版全功能测试" --可以不要git tag -a V1.0.1 -m "第一版全功能测试"git tag V1.0.1-第一版全功能测试之前版本打tag :
先回退到要打tag的commit,然后依次执行
git checkout xxxxgit tag V1.0.1-第一版全功能测试tag提交:
git push origin 标签名字
git push origin --tags删除本地的tag信息:
git tag -d 标签名字
删除远端的tag信息:
git push origin :refs/tags/标签名字查看tag版本信息:
git show 标签名字
查看操作
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative上述命令显示信息:hashcode commitMessage 时间(距离现在多久) 提交人查询某个文件的修改记录git log -p file_path