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

关联远程仓库

Android Studio 记录使用Git的一些命令_第1张图片

git remote add origin git@gitee.xxx.git
其中 origin是为这个远程仓库设置一个名称

查看已经关联的远程仓库

查看方法:git remote -vv  
我这里使用了阿里云和GitHub 

Android Studio 记录使用Git的一些命令_第2张图片


查看仓库的一些信息

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 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 ..." 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 push main Test1

查看已有分支

指令:git branch -a  // 查看所有分支,包括本地仓库以及远程仓库分支
指令:git branch  // 查看本地分支,这个需要自己创建
指令:git branch -r  // 查看远程分支
这里需要注意的是,如果你一开始没有过别的操作,那么就可能会出现没有出现分支的情况,如下图,
通过 git remote show origin 得知远程仓库有三个分支,但是输入 git branch -a 的时候却没有显示出来

Android Studio 记录使用Git的一些命令_第3张图片

解决:可以通过 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


查看当前所在的分支

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

Android Studio 记录使用Git的一些命令_第4张图片

删除分支

删除本地分支:

格式: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

Android Studio 记录使用Git的一些命令_第5张图片

回退到指定版本

格式: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
下图为添加后

Android Studio 记录使用Git的一些命令_第6张图片


删除远程仓库

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

下图中是已经关联的远程仓库,选择删除 Viewpager2-looper
Android Studio 记录使用Git的一些命令_第7张图片

删除远程仓库的某次提交

指令如下:
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 了

出现的一些问题

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   
	没错,是一个远程仓库中并不存在的分支,推送之后会自动创建


未完待续…

你可能感兴趣的:(Git,git,android,studio,github)