11、git操作

201 阅读3分钟

1、 git报错,提交不了

Your branch is based on 'origin/release-20210924-V5.0.8bugfix_CZLSH', but the upstream is gone.
您的分支基于“origin/release-20210924-V5.0.8bugfix_CZLSH”,但上游已经消失。

//解决
 git push --set-upstream origin release-20210924-V5.0.8bugfix-CZLSH
 git push --set-upstream origin  分支名

2、更新依赖

git submodule update --init --recursive

3、git命令

q退出git当前状态
(1)克隆指定分支:git clone 分支地址 -b release-20210630-V5.0.7bugfix-MZW2)删除远程分支:git push origin --delete feature-20210630-bugfix-MZW
(3)新建含有子模块仓库的新分支,建立含有submodule的git项目的新分支(需要切换子模块的分支)
 git config -f .gitmodules submodule.src/components.branch release-20210630-V5.0.7bugfix-MZW
 
转换相应子模块的分支
git config -f .gitmodules submodule.sub_project.branch new_sub_branch
git config -f .gitmodules submodule.src/components.branch master


	创建 git 仓库:
		(1)mkdir test  		
			创建的仓库名
		(2)cd test			
			进入创建的擦仓库名
		(3)git init			
			初始化仓库
		(4)touch README.md		
			git status      查看状态
		(5)git add README.md                  
			git add .      暂存
		(6)git commit -m "first commit"     
			 提交日志信息
		(7)git remote add origin https://gitee.com/wxy-888/test.git  
			进入要上传的仓库,右键git bash,添加远程地址
		(8)切换修改或提交的分支上:
		
不用修改.gitmodules下的文件,直接:	更新解压子模块	
第一步: git clone [git-url] -b [branch-name]
第二步:git reset --hard [commit-number]
			git submodule sync
			git submodule update --init --recursive 


参考:
git branch -a :
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/release-20210223-FujianV1.0
  remotes/origin/release-20210223-GuangxiV1.0
 操作:
	git branch   查看所有分支
	git checkout release-20210223-GuangxiV1.0 切换到广西分支
	git pull origin release-20210223-GuangxiV1.0  拉取广西分支的最新代码
	覆盖--修改代码:操作
	git status 
	git add . 
	git commit -m '测试git'
	git push -u origin release-20210223-GuangxiV1.0  //将本地仓库首次提交到远程仓库9)git push -u origin master

主要的几个命令
git add # 将工作区的修改提交到暂存区
git commit # 将暂存区的修改提交到当前分支
git reset # 回退到某一个版本
git stash # 保存某次修改
git pull # 从远程更新代码
git push # 将本地代码更新到远程分支上
git reflog # 查看历史命令
git status # 查看当前仓库的状态
git diff # 查看修改
git log # 查看提交历史
git revert # 回退某个修改
————————————————

三、查看分支:
1 git branch
    不带参数:列出本地已经存在的分支,并且在当前分支的前面用"*"标记

2 git branch -r
    查看远程版本库分支列表

3 git branch -a
    查看所有分支列表,包括本地和远程

4 git branch dev
    创建名为dev的分支,创建分支时需要是最新的环境,创建分支但依然停留在当前分支

5 git branch -d dev
    删除dev分支,如果在分支中有一些未merge的提交,那么会删除分支失败,此时可以使用 git branch -D dev:强制删除dev分支,

6 git branch -vv 
    可以查看本地分支对应的远程分支

7 git branch -m oldName newName
    给分支重命名
git clone <repository> --recursive #递归的方式克隆整个项目
git submodule add <repository> <path> #添加子模块
#示例:git submodule add https://github.com/c-ares/c-ares.git  third_party/cares/cares -b cares-1_12_0
 
git submodule init #初始化子模块
git submodule update --init --recursive #初始化并更新子模块
git submodule foreach git pull      #拉取所有子模块
git pull --recurse-submodules  #拉取所有子模块中的依赖项
git submodule sync  #将新的URL同步更新,该步骤适用于git submodule add或修改.gitmodules文件之后
git submodule status third_party/ModuleA    #查看子模块状态,即该子模块切入的提交节点位置,即某HASH值
 
#删除子模块,然后删除对应资源库所有文件
git rm --cached ModuleA
rm -rf moduleA
 
git submodule set-url third_party/ModuleA https://XXX.git #,更新子模块URL,该功能在1.8.3.1以上版本
git submodule set-branch --branch dev third_party/ModuleA   #设置子模块项目采用的分支,该功能在1.8.3.1以上版本

4、修改远程分支名

参考:www.cnblogs.com/xuwenjin/p/…

场景:将分支名称为 oldbranch 改为 newbranch 
步骤:
1、将本地分支oldbranch切一个分支到本地
     git branch -m oldbranch newbranch 
2、删除远程分支
    git push --delete origin oldbranch 
3、将本地新分支推送到远程
   git push origin newbranch