git remote add origin git@gitee.xxx.git
其中 origin是为这个远程仓库设置一个名称
查看方法:git remote -vv
我这里使用了阿里云和GitHub
git remote show origin
其中 origin是远程仓库名, 这个可以通过 git remote -v 得知是不是origin
输入指令:
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
两者可在git bash中查看,指令: git config user.xxx
指令:git remote -vv
指令: git add . // 表示全部添加
指令:git commit -m "描述更新信息"
指令: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 的时候却没有显示出来
解决:可以通过 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 , 如下图,有两个分支,前面有 * 号的代表当前所在的分支
删除本地分支:
格式: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 了
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
没错,是一个远程仓库中并不存在的分支,推送之后会自动创建
未完待续…