Android Studio 记录使用Git的一些命令

关联远程仓库

在这里插入图片描述

git remote add origin git@gitee.xxx.git
其中 origin是为这个远程仓库设置一个名称
查看已经关联的远程仓库
查看方法:git remote -vv  
我这里使用了阿里云和GitHub 

在这里插入图片描述


查看仓库的一些信息
git remote show origin
其中 origin是远程仓库名, 这个可以通过 git remote -v 得知是不是origin
配置user.name & user.email
输入指令:

git config --global user.name "你的用户名"

git config --global user.email "你的邮箱"

两者可在git bash中查看,指令: git config user.xxx

修改的话
git config --global --replace-all user.email “我的邮箱”
git config --global --replace-all user.name “用户名”

查看本地仓库与远程仓库是否已经关联
指令:git remote -vv
将本地仓库的文件添加到远程仓库
指令: git add .          // 表示全部添加
提交
指令:git commit -m "描述更新信息"

推送到远程仓库(以阿里云为例,其远程仓库默认名称为 main ,自行查看 是 main 还是 origin )
指令:git push -u main   
// 完成之后就可以在阿里云的代码管理平台上面看到提交的信息了
指令:git push -u main develop  // 推送到具体某分支
注意:推送的时候可能会出现的错误 
	1. `error: failed to push some refs to`
	2. `remote: Access deny: No permission to push this protected branch`

错误1. 因为远程仓库存在一些本地不存在的文件,所以需要 拉取 pull 一下(先看完注意点再选择合适的方式)
指令:git pull origin develop  // 拉取 develop 分支内容
注意1:拉取的时候可能会出现的错误:`fatal: refusing to merge unrelated histories`
方法一:git clone 远程仓库到本地,将需要推送的内容放到该仓库下 , 然后进行提交
方法二:指令:git pull origin master --allow-unrelated-historie 
		然后重新执行一下指令:
		git add . (不要遗漏小圆点)
		git commit -m "初始化项目"
		git push -u origin develop

	使用:git pull origin master --allow-unrelated-historie 的时候,出现
	如下错误:Automatic merge failed; fix conflicts and then commit the result.
		解决:查看下是什么问题
			git status
			出现如下的提示
		
		Unmerged paths:
  				(use "git add <file>..." to mark resolution)
        		both added:      README.md
			那就添加
			git add README.md
			

注意2:在拉去的时候,如果不想覆盖本地修改的内容,输入以下指令:
	git stash 
	git pull origin develop   
	git stash pop 

	git add . (不要遗漏小圆点)
	git commit -m "更新内容"
	git push -u origin develop
注意3:如果之前已经 commit 提交过,那么再次提交会产生两个提交对象

错误2:

```kotlin

 ! [rejected]        develop -> develop (non-fast-forward)
error: failed to push some refs to 'gitee.xxx.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

错误3. 因为远程仓库设置了权限

[具体参考:https://blog.csdn.net/jinhuilin/article/details/111583344](https://blog.csdn.net/jinhuilin/article/details/111583344)

----

#### 新建分支/添加分支

```bash
格式:git branch 分支名称     // 添加本地仓库分支
指令:git branch Test1
注意:如果是新初始化的git会出现 - `fatal: Not a valid object name: ‘master‘.`
这需要你先进行一次提交之后才可以创建分支,输入如下指令,即可创建分支
指令:git add .  (不要漏了句号)
	  git commit -m "初始化"

强制推送
git checkout dev
git add .
git commit -m 'local commit'
# 将本地dev推向远程master分支
git push origin dev:master -f

链接到远程仓库,但是远程仓库为空,无任何内容
git init
git add .
git commit -m "first commit"
git branch master // 创建本地分支,便于之后推送到远程(如果不行的话,那就重新提交一下)
git remote add origin git@xxx/xxx.git
git push -u origin master
在远程库上生成新添加的分支
指令:git push main Test1
查看已有分支
指令:git branch -a  // 查看所有分支,包括本地仓库以及远程仓库分支
指令:git branch  // 查看本地分支,这个需要自己创建
指令:git branch -r  // 查看远程分支
这里需要注意的是,如果你一开始没有过别的操作,那么就可能会出现没有出现分支的情况,如下图,
通过 git remote show origin 得知远程仓库有三个分支,但是输入 git branch -a 的时候却没有显示出来

在这里插入图片描述

解决:可以通过 git fetch 将本地和远程分支同步一下

切换分支

需要注意的地方: 切换之前需要将修改的内容添加到缓存中,进行提交,然后再切换,
				不然的话所有的分支内容都会一样
				
        指令1:git add .
        指令2:git commit -m"修改测试"
        
        ------------------------------
        
切换分支:
格式:git checkout 已有分支名称
指令:git checkout Test1

切换的时候遇到的问题:
error: Your local changes to the following files would be overwritten by checkout
解决:需要先 commit 或者 stash 一下
例子:
	git add .
	git commit -m "content" 
	git checkout branchName


更换/切换仓库/更换远程仓库
1. 先看下有哪些仓库
	指令:git remote -v
2. 删除其中的Viewpager2-looper这个仓库,其对应的是 origin
	指令:git remote rm origin

3. 添加新的仓库
git add .
git commit -m "first commit"
git branch master // 创建本地分支,便于之后推送到远程(如果不行的话,那就重新提交一下)
git remote add origin git@xxx/xxx.git
git push -u origin master

查看当前所在的分支
指令:git branch , 如下图,有两个分支,前面有 * 号的代表当前所在的分支

在这里插入图片描述

删除分支
删除本地分支:

格式:git branch -d 已有分支名称
指令:git branch -d Test1

有时候该分支处于某些状态时,不可以删除,可以强行删除
指令:git branch -D Test1

--------------------

删除远程仓库分支:
指令:git push main --delete Test1

合并本地分支
将develop分支合并到master主分支

1. 先看下当前处于哪个分支
	git branch
2. 切换至master主分支
	git checkout master
3. 将develop分支合并到master主分支,此时master分支的内容就和develop分支的内容一致了
	git merge develop


切换的时候可能遇到的问题:
error: Your local changes to the following files would be overwritten by checkout
解决:需要先 commit 或者 stash 一下
如:
	git add .
	git commit -m "content" 
	git checkout branchName

强制合并
# 切换为master分支
git checkout master

# 将master分支强行重置为dev分支
git reset --hard dev

查看提交记录
指令:git log

在这里插入图片描述

回退到指定版本
格式:git reset --hard 提交的版本号
指令:git reset --hard 71988b0b71a0b49c76bf2bee3d85884e13df38d8

将远程某个分支的代码拉取到本地某分支
1. 需要先切换到某分支,比如:切换到stateTest分支
   指令:git checkout stateTest
2. 将远程某个分支(topMenuBar)的代码拉取本地stateTest分支
   指令:git pull main topMenuBar
其中,main还是origin或者其他,可以通过以下指令查看
	指令:git remote -v

添加远程仓库后,克隆项目到本地项目中
指令:git clone url
其中,url为远程仓库项目的SSH
下图为添加后

在这里插入图片描述


删除远程仓库
1. 先看下有哪些仓库
	指令:git remote -v
2. 删除其中的Viewpager2-looper这个仓库,其对应的是 origin
	指令:git remote rm origin

下图中是已经关联的远程仓库,选择删除 Viewpager2-looper
在这里插入图片描述

删除远程仓库的某次提交
指令如下:
git log       先看下之前提交的信息, 得到一些之前提交的信息,按 Enter(回车键)继续读取之前提交的信息,
  		      然后复制 commit 之后一长串的字符
git reset commitId(此处就是要回退到的版本, commitId就是复制的那一长串字符)		
	
git stash     保存当下的数据
git push --force    覆盖最新一次commit提交的数据
git stash pop  	

git add . 
git commit -m "更新的内容"
git push -u origin develop   

这次不用 pull 了
清除所有的Stash
git stash clear :删除所有缓存的stash
出现的一些问题
1. 在进行提交之后,查看状态,发现没有提交:Changes not staged for commit
	缘由:因为之前使用的指令是:git add ./ , 提交之后一直显示有未提交的数据
	解决:指令:git add .
	PS: 之后在添加之后习惯查看以下状态
	指令:git status
		
2. 在Android Studio项目中直接删除文件后,输入指令推送到远程,发现远程库
	中的文件并没有被删除
	缘由:由于问题 1 所导致
	
3. failed to push some refs to xxx
	原因:本地内容和远程内容不一致, 貌似也是问题 1 所导致?
	解决方案:
		失败:
			git pull --rebase origin master
			git push -u origin master
		未尝试(强制覆盖):
			git push -f main Test1
		最后因为内容改动小,所以重新弄了个分支,按照 add,commit,push 操作一步步执行
			
4. error: src refspec master does not match any 
	error: failed to push some refs to 
	解决:当时看到远程仓库只有一个 master分支,想要推送到此分支,结果就失败了,错误如上面所提示,后来就 	git push -u origin master 
	改成 	git push -u origin main   
	没错,是一个远程仓库中并不存在的分支,推送之后会自动创建

5. git问题error: remote origin already exists.
	输入git remote rm origin 删除关联的origin的远程库
	关联自己的仓库 git remote add origin https://xxx/xxx.git
	推送:git push origin master

6. pull 的时候出现的问题:
error: Your local changes to the following files would be overwritten by merge:
...
Please commit your changes or stash them before you merge.
	情况一:覆盖本地文件,完全使用远程仓库文件
	指令一:git clean -f (清理掉那些报错的文件,但有些会清理不了,需要手动清理,比如生成的build文件,)  .
	指令二:git pull ...你需要的分支


7. 


另一台电脑使用git

缘由,在虚拟机里面做项目进行改写,然后推送的时候出现了错误:
注意提交代码时的路径是否是在当前项目的路径下,不是的话,切换路径

  1. Permission denied, please try again
    需要设置ssh
    Git解决Permission denied, please try again问题

  2. fatal: pathspec ‘xxxx‘ did not match any files
    需要进行整套流程
    git问题记录:fatal: pathspec ‘xxxx‘ did not match any files

  3. fatal: Not a git repository (or any of the parent directories):
    需要初始化
    解决 fatal: Not a git repository (or any of the parent directories): .git 问题

`

未完待续…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值