Android 常用git指令记录总结
Posted 红日666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 常用git指令记录总结相关的知识,希望对你有一定的参考价值。
git常用指令汇总(持续更新...):
git add指令:
git add '*txt':提交某种格式的文档到暂存区(Stage)
git add .:提交所有修改到暂存区
git commit指令:
git commit -m + "your comment":将暂存区的所有修改提交到远程分支
git commit <file> -m + "your comment":将暂存区某一文件修改提交到远程分支
git push指令:
git push <远程主机名> <本地分支名>:<远程分支名>:用于将本地分支的更新,推送到远程主机
git push origin master(等价于“git push origin master:master)
git push origin HEAD(HEAD指向当前工作的branch,master不一定指向当前工作的branch,所以我觉得用HEAD还比master好些)
git push origin dev:推送其他分支(如果当前分支只有一个追踪分支,那么主机名等都可以省略)
git push origin --delete dev:删除远程分支dev
将本地内容推送到github仓库步骤
(项目首次需git init初始化)
git remote add origin git@server-name:path/repo-name.git:关联远程库:
git add .
git commit -m 注释
git push -u origin master:(第一次用,之后可以直接git push)(用了参数-u之后,以后就可以直接用不带参数的git pull从之前push到的分支来pull。)
git checkout指令:
git checkout -- 文件名:回撤-丢弃工作区的修改
git checkout HEAD file:把暂存区的修改撤销掉
git checkout 分支名:切换到某一个分支
git checkout -b dev:创建并切换dev分支
git checkout -b branch-name origin/branch-name:在本地创建和远程分支对应的分支(本地分支名称一般需要跟远程分支名称相同)。
git branch指令:
git branch <分支名>:创建分支
git branch:查看(local)所有的分支
git branch -r:查看(remote)所有分支
git branch -a: 查看所有的分支(包括local/remote)
git branch -d dev:(-d是--delete缩写)删除本地dev分支【该分支必须完全和它的上游分支merge完成,如果没有上游分支,必须要和HEAD完全merge】
git branch -D dev:(-D是--delete --force的缩写)强行删除dev分支【这样写可以在不检查merge状态的情况下删除分支】
git branch --set-upstream branch-name origin/branch-name:
将本地分支和远程分支的建立关联。
git merge指令:
git merge dev:将dev分支合并到master
git merge --no-ff -m "---" dev:将分支dev合并到当前分支(合并后不会丢掉分支dev信息)
git reset(回滚)指令:
git reset -—hard commit-id:彻底回滚到该id的版本,本地的源码也变为上一个版本的内容
git reset –-soft commit-id:只回滚了该id的commit信息
git reset —-mixed commit-id:默认方式,回滚了commit和add提交信息,只保留源码
git reset <文件名>:unstage file(将add到暂存区的文件提交)
git reset HEAD^ :回退所有内容到上一个版本
git reset HEAD^ MainActivity.java:回退MainActivity.java这个文件的版本到上一个版本
本地回滚:
1、git reflog:找到要回退的版本的commit id
2、git reset --hard commit-id号:回退版本
远程回滚:
1、git reflog
2、git reset --hard commit-id号
3、git push -f:强制推送到远程分支(注意:本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支)
SourceTree回滚:
方法一:
1、将(该分支如develop)重置到这次提交(强制模式)
2、git push -f 强制推送到远程分支
3、刷新远程分支页面(便不会有pull提示)
方法二(推荐):
1、选中SourceTree分支上的某一次错误的提交
2、提交回滚
3、可以看到本地的代码已经回滚,此时直接push到远程即可
4、可以看到远程已revert到之前提交错误代码之前的代码了
查看指令:
git status:查看当前修改状态
cat <文件名>:查看文件内容
pwd:显示当前目录
git diff:顾名思义就是查看difference
git diff HEAD:查看最近一次differ
git log(--pretty=oneline):显示从最近到最远的提交日志
git reflog:用来记录你的每一次命令
git remote -v:列出对应的远程库
git log --graph:展示分支合并图
Bugfix指令集:
如果dev分支正在开发,此时有个bug需要修复;而dev的内容还没开发完,不能提交,所以此时需要先把dev分支的内容贮藏一下;
然后新建一个issue-001分支,修复bug后,与master merge;然后在切换到dev分支,把刚才贮藏的内容恢复一下。指令集如下:
git stash
git checkout master
git checkout -b issue-001
git add .
git commit -m “fix bug”
git checkout master
git merge --no-ff -m "merged bug fix 101" issue-101
git branch -d issue-101
git checkout dev
git stash pop( 等同于> git stash apply恢复,用git stash drop来删除贮藏区内容)
git show命令:
git log: 查看最近提交记录
git show: 查看最近commit修改
git show commitId:查看指定commitId的所有修改
git show commitId fileName:查看指定commitId中fileName文件的修改
git tag指令:
git tag <name>:新建一个标签,默认为HEAD,也可以指定一个commit id。
git tag -a <tagname> -m "...”:可以指定标签信息
git tag:查看所有标签
git tag -d <name>:删除标签
git push origin <tagname>:推送标签到远程
git push origin --tags:一次性推送全部尚未推送到远程的本地标签
#如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
git tag -d <name>
git push origin :refs/tags/<name>
查看git命令所在的安装路径:
witch git
将github项目地址从HTTPS变更为SSH:
以MotionEvent举例:
1、cd到该项目目录下
2、git remote set-url origin git@github.com:zhongyao/MotionEvent.git
git修改(查看)用户名/邮箱指令:
局部修改(当前project)命令:
git config user.name 你的目标用户名;
git config user.email 你的目标邮箱名;
查看命令分别为:
git config user.name
git config user.email
或者打开当前项目目录.git文件夹下config文件进行修改即可,一般修改后格式如下(没有修改过的话不会展示如下内容):
[user]
name = 你的目标用户名
email = 你的目标邮箱名
全局修改命令为:
git config --global user.name 你的目标用户名;
git config --global user.email 你的目标邮箱名;
全局查看命令为:
git config --global user.name
git config --global user.email
或指令直接打开全局的.gitconfig文件修改/查看:
open ~/.gitconfig
亦或者通过如下指令直接修改:
vi ~/.gitconfig
git pull提示Not possible to fast-forward的解决方法:
【一般在本地修改文件后push到远程,此时发现之前没有先pull最新的代码时会出现的情况】
出现这种原因是因为本地版本比较老,而且commit了新内容,那么如何解决呢?加上--rebase即可,例如:
git pull origin <branch> --rebase
一般情况下这样做就可以正常pull了,但如果本地依然有修改的内容没有commit,那么会报下面的错误:
error: cannot pull with rebase: You have unstaged changes.
error: please commit or stash them.
出现这种错误的原因就是本地有修改的内容没有commit,只需要commit下即可(如果是不需要的改动就还原被改动的文件),commit后重新执行 git pull origin xxx --rebase即可。
git rebase问题:First, rewinding head to replay your work on top of it...:
git fetch origin
git reset --hard origin/<branch>
github无法push问题: Support for password authentication was removed on August 13, 2021. Please use a personal access to ...:
1、Github个人主页:Setting ---> Developer setting ---> Personal access tokens ---> Generate new token ---> 选择期限 + 选中repo + admin + gist ---> 点击Generate token ---> 复制下来的token。
2、android Studio:Preferences ---> Version Control ---> Github ---> + ---> Use Token ---> server输入github.com[或https://github.com] token输入上一步生成的token。
3、重新push,密码输入上一步的token即可。
github分支无法合并问题:fatal: refusing to merge unrelated histories:
//此处master是要合并的分支【如master合并到main分支】
git pull origin master --allow-unrelated-histories
github无法push问题:Failed to connect to github.com port 443: Connection refused:
参考:
以上是关于Android 常用git指令记录总结的主要内容,如果未能解决你的问题,请参考以下文章