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 Studio Git .gitignore规则不生效【参考】:
原因就是因为 .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
git error fatal: fetch-pack: invalid index-pack output:
首次clone某个项目(尤其是项目比较大)时,clone过程中,会出现该错误,主要是主要是项目过大,clone失败了。此时我们可以用:
git clone [你的git项目地址] --depth=1
来clone下来该项目,但是clone下来后,你会发现只能看到一个master分支,其他分支看不到,所以这个时候,可以通过如下步骤来解决:
通过git命令设置追踪的分支:
git remote set-branches origin 'branch-name'
如果需要所有的分支信息,那么可以用通配符:
git remote set-branches origin '*'
之后再进行一次fetch操作:
git fetch -v
切换至你所需要的分支:
git checkout develop
查看某项目Git代码提交量(用于工作代码粗略统计):
其中:
--author后面的 *** 需要修改为自己代码提交时的user.name
--since后面可以修改起始时间和结束时间
git log --author="***" --since=2023-01-01 --until=2023-09-30 --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
然后在AS的Terminal的项目目录下,输入以上指令即可,最后可以输出代码的粗略统计:
added lines: 2621, removed lines: 1213, total lines: 1408
git commit代码回滚:
提交了代码,但是发现提交的有问题,如何回滚,有两种方式:
1、git reset --soft HEAD^:
回滚远程的提交代码,但是本地的变更会保存。
2、 git reset --hard HEAD^:
远程及本地的代码均会删除,包括那些未提交的代码,所以慎用。
如果回滚时,已经使用了方法2,并且之前本地未提交的(但已经add)的文件夹也消失了,如何找回呢,可通过如下方案:
如何在 Git 中恢复已删除的文件——硬重置后恢复更改
恢复因git reset --hard 但未提交全部文件到仓库导致的文件丢失问题_为什么一回滚暂存区数据都没了
参考:
Git常用命令及方法大全
git rebase简介
rebase用法小结
Android 常用git指令记录总结相关推荐
- Android 常用adb指令记录总结
Android 日常开发adb指令记录(不断更新): 注:这里包名均使用com.redsun.phone代替. 一.java -version: 查看java安装版本 二.adb shell: 查看 ...
- 常用Git指令常用git命令清单
下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一. ...
- 常用Git指令|初入职Git指令学习|如何将Git项目拉至本地|如何将本地项目上传至Git|Ubuntu下Git环境配置|Ubuntu下如何利用VSCode使用Git指令
实习入职已经一个月了,整理一下自己常用的一些指令,供自己查阅,也可以供一些新入职朋友参考. 这条博客也会不定时更新. 2022.10.26更新Ubuntu环境下的Git配置,因为最近可能需要win,U ...
- 免费的私人代码托管(bitbucket) 和 常用git指令
转自 http://blog.csdn.net/nzing/article/details/24452475 今天想找个免费的私人代码托管平台,github,googlecode, SourceFor ...
- Android常用第三方框架记录
先记录,万一用到呢(如果有好的框架,请不吝推荐) 1.腾讯TBS浏览器WebView,避免系统WebView的多坑. 2.智能布局加载更多:SmartRefreshLayout 3.沉浸式布局:Imm ...
- 常用git指令(以及绑定远程仓库)
本地git常用命令 git init 初始化一个 仓库 以当前文件夹 ,之后的操作都要在git仓库内部,仓库外部做git是没有用的 git add <文件名> 在当前文件夹中加入一个可以被 ...
- Android 常用的函数记录
目录 一, 设置所有App默认授予权限 二,设置默认Launcher 三,设置默认浏览器 四,根据包名启动应用 五,通过反射静默安装应用 一, 设置所有App默认授予权限 public void se ...
- Gitte (https://gitee.com/) 常用git指令--实例
简易的命令行入门教程: Git 全局设置: git config --global user.name "华王" git config --global user.email &q ...
- Git 常用指令记录
Git 常用指令记录 创建代码库 提交代码 查看修改和撤销 分支用法 tag 版本控制 创建代码库 git init 提交代码 添加需要提交的文件 第一种,添加单个文件 git add [name] ...
- 【Linux常见指令】记录一些机器学习中常用的指令(自用,持续更新)
文章目录 前言 一.Conda 创建环境 二.Sudo 命令 1.安装g++/gcc 2.查找文件 3.软连接 三.pip 安装 1.安装requirements.txt 2.清华源安装 四.git ...
最新文章
- 二进制-八进制-十进制-16进制之间的转换
- 使用MEF构建可扩展的Silverlight应用
- 1.4.在TypeScript中使用JQuery
- 自定义UISlider的外观
- 雅虎14条性能优化原则
- 简练软考知识点整理-中国制造2025
- java web 邮件_Java Web(十二) JavaMail发送邮件
- windows下面刷新dns
- 后端知识点:互联网中B端客户和C端客户的区别
- 全球及中国智能家居设备市场竞争态势与投资策略建议报告2022版
- 【Java面试系列】ElasticSearch面试题
- 苹果开发者账号可以创建多少测试证书_苹果开发者帐户能创建多少个发布证书...
- 清理计算机磁盘碎片,电脑磁盘碎片清理工具(Auslogics Disk Defrag Pro)
- Css的字体样式属性大全
- BATCH/批处理命令
- 给应届毕业生的建议:萌新程序员找工作的三板斧
- Java解析魔兽争霸3录像W3G文件(三):解析游戏开始前的信息
- java Servlet mysql json ECharts图表生成实战-罗绍岗-专题视频课程
- 支付宝常用接口统一封装,可直接支付参数使用(适用于H5、PC、APP)
- eplan支持mysql_“化繁为简”玩转工厂接线难题,EPLAN智能布线让工作更简单
热门文章
- Anaconda 更新出现out of memory(亲测)
- Vue.js中Ueditor如何引用 youtube视频源发布(已解决)
- 2018 ACM-ICPC 宁夏邀请赛
- 基于YOLOv5及labelImg的图形化半自动标注工具labelGo
- This is usually caused by another repository pushing hint: to the same ref. You may want to...问题解决
- java把csv的第一行去除_导入CSV时跳过 Headers 或第一行
- 北邮计算机发展,准备报考北京邮电大学的信息科学与技术专业,发展前景如何?...
- 临床数据行业职位一览表
- 解决:Could not find method ndkVersion() for arguments
- 1979-2018中国区域地面气象要素驱动数据日/月/年度合成产品