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指令记录总结相关推荐

  1. Android 常用adb指令记录总结

    Android 日常开发adb指令记录(不断更新): 注:这里包名均使用com.redsun.phone代替. 一.java -version: 查看java安装版本 二.adb  shell: 查看 ...

  2. 常用Git指令常用git命令清单

    下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一. ...

  3. 常用Git指令|初入职Git指令学习|如何将Git项目拉至本地|如何将本地项目上传至Git|Ubuntu下Git环境配置|Ubuntu下如何利用VSCode使用Git指令

    实习入职已经一个月了,整理一下自己常用的一些指令,供自己查阅,也可以供一些新入职朋友参考. 这条博客也会不定时更新. 2022.10.26更新Ubuntu环境下的Git配置,因为最近可能需要win,U ...

  4. 免费的私人代码托管(bitbucket) 和 常用git指令

    转自 http://blog.csdn.net/nzing/article/details/24452475 今天想找个免费的私人代码托管平台,github,googlecode, SourceFor ...

  5. Android常用第三方框架记录

    先记录,万一用到呢(如果有好的框架,请不吝推荐) 1.腾讯TBS浏览器WebView,避免系统WebView的多坑. 2.智能布局加载更多:SmartRefreshLayout 3.沉浸式布局:Imm ...

  6. 常用git指令(以及绑定远程仓库)

    本地git常用命令 git init 初始化一个 仓库 以当前文件夹 ,之后的操作都要在git仓库内部,仓库外部做git是没有用的 git add <文件名> 在当前文件夹中加入一个可以被 ...

  7. Android 常用的函数记录

    目录 一, 设置所有App默认授予权限 二,设置默认Launcher 三,设置默认浏览器 四,根据包名启动应用 五,通过反射静默安装应用 一, 设置所有App默认授予权限 public void se ...

  8. Gitte (https://gitee.com/) 常用git指令--实例

    简易的命令行入门教程: Git 全局设置: git config --global user.name "华王" git config --global user.email &q ...

  9. Git 常用指令记录

    Git 常用指令记录 创建代码库 提交代码 查看修改和撤销 分支用法 tag 版本控制 创建代码库 git init 提交代码 添加需要提交的文件 第一种,添加单个文件 git add [name] ...

  10. 【Linux常见指令】记录一些机器学习中常用的指令(自用,持续更新)

    文章目录 前言 一.Conda 创建环境 二.Sudo 命令 1.安装g++/gcc 2.查找文件 3.软连接 三.pip 安装 1.安装requirements.txt 2.清华源安装 四.git ...

最新文章

  1. 二进制-八进制-十进制-16进制之间的转换
  2. 使用MEF构建可扩展的Silverlight应用
  3. 1.4.在TypeScript中使用JQuery
  4. 自定义UISlider的外观
  5. 雅虎14条性能优化原则
  6. 简练软考知识点整理-中国制造2025
  7. java web 邮件_Java Web(十二) JavaMail发送邮件
  8. windows下面刷新dns
  9. 后端知识点:互联网中B端客户和C端客户的区别
  10. 全球及中国智能家居设备市场竞争态势与投资策略建议报告2022版
  11. 【Java面试系列】ElasticSearch面试题
  12. 苹果开发者账号可以创建多少测试证书_苹果开发者帐户能创建多少个发布证书...
  13. 清理计算机磁盘碎片,电脑磁盘碎片清理工具(Auslogics Disk Defrag Pro)
  14. Css的字体样式属性大全
  15. BATCH/批处理命令
  16. 给应届毕业生的建议:萌新程序员找工作的三板斧
  17. Java解析魔兽争霸3录像W3G文件(三):解析游戏开始前的信息
  18. java Servlet mysql json ECharts图表生成实战-罗绍岗-专题视频课程
  19. 支付宝常用接口统一封装,可直接支付参数使用(适用于H5、PC、APP)
  20. eplan支持mysql_“化繁为简”玩转工厂接线难题,EPLAN智能布线让工作更简单

热门文章

  1. Anaconda 更新出现out of memory(亲测)
  2. Vue.js中Ueditor如何引用 youtube视频源发布(已解决)
  3. 2018 ACM-ICPC 宁夏邀请赛
  4. 基于YOLOv5及labelImg的图形化半自动标注工具labelGo
  5. This is usually caused by another repository pushing hint: to the same ref. You may want to...问题解决
  6. java把csv的第一行去除_导入CSV时跳过 Headers 或第一行
  7. 北邮计算机发展,准备报考北京邮电大学的信息科学与技术专业,发展前景如何?...
  8. 临床数据行业职位一览表
  9. 解决:Could not find method ndkVersion() for arguments
  10. 1979-2018中国区域地面气象要素驱动数据日/月/年度合成产品