github
上创建一个同名空仓库$: git init
$: git add
$: git commit
$: git remote add origin "本地分支名:远程分支名"
$: git push -u origin master
一般本地分支名和远程分支名一样
执行 git pull 报错:
fatal: refusing to merge unrelated histories // 拒绝合并无关历史
执行 :
git pull origin master --allow-unrelated-histories
//更新:温馨提示,暴力手法,我记得这个命令应该是和线上保持一致
git pull origin master
git branch --set-upstream-to=origin/master master
git pull
git log --author="username" --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 }' -
username为你的用户名
统计每个人增删行数
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --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 }' -; done
查看仓库提交者排名前五的人
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5
添加或修改的代码行数:
git log --stat|perl -ne 'END { print $c } $c += $1 if /(\d+) insertions/'
加参数--depth=1
,
$: github clone --depth=1 仓库地址
只拉取最近一次的 commit
原因是, clone 时为 HTTPS 方式, 更改 clone 方式为 SSH
$: git remote -v //查看远程连接的方式
$: git remote rm origin //删除原先HTTPS的连接方式
$: git remote add origin github仓库的SSH地址
$: git push origin master //完成
git log
查看 commit 日志git reset --hard commit_id
来撤回git reset
直接回退到之前的版本x, 丢弃x之后的所有版本$: git log (查看记录, 寻找到想要回退到的目标版本号(也可以直接在github网站上看))
$: git reset --hard 目标版本号 (进行版本回退)
$: git push -f (强行提交, 因为本地HEAD指向的版本比远程库旧,不加 -f 会报错)
或者直接
git reset --soft HEAD^
, HEAD^ 的意思是上一个版本, 也可以写成 HEAD~1, 或者撤销两次: HEAD~2,soft
参数表示不改动工作空间代码,
git revert
, 创建一个新版本, 该新版本内容和想要回退到的目标版本x一致, 而不丢弃x之后的所有版本$: git log (寻找到目标版本之后的一次提交的版本号)
$: git revert -n 版本号
commit
注释写错了, 只想改注释, 只需要$: git commit --amend
git branch
git branch <name>
git checkout <name>
直接创建一个分支并切换到该分支 :
git checkout -b <name>
git merge <name>
合并分支只需要将当前分支的指针指向指定分支的的当前提交, 所以速度非常快
合并时遇到冲突想取消合并操作, 使用 :git merge --abort
想回退可以使用git reset
和git .revert
git branch -d <name>
新装的系统换了个源, 然后执行sudo apt-get update
时报错:
由于没有公钥,无法验证下列签名: NO_PUBKEY A074F0583066C9C9
解决办法 :
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A074F0583066C9C9 (换成你自己提示的)
其实第一次执行莫名不行, 第二天还是这个方法又好了…
git rm -r --cached 文件名
git commit -m "..."
git push
查看远程所有分支
git branch -a
git branch不带参数,列出本地已经存在的分支,并且在当前分支的前面用*标记,加上-a参数可以查看所有分支列表,包括本地和远程,远程分支一般会用红色字体标记出来
* dev
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/release/caigou_v1.0
新建分支并切换到指定分支
git checkout -b dev origin/release/caigou_v1.0
git checkout -b 本地分支名 origin/远程分支名
该命令可以将远程git仓库里的指定分支拉取到本地,这样就在本地新建了一个dev分支,并和指定的远程分支release/caigou_v1.0关联了起来。
git branch -vv
命令可以显示本地所有分支
* dev e67e3ef [origin/release/caigou_v1.0] 供应商详情页面
master 11160c2 [origin/master: behind 5] Merge branch 'master' of https://git.jointforce.com/scm/join/yj-stat
*表示当前所在分支,[远程分支]表示当前本地分支追踪的远程分支,最后一个是最近一次提交的注释。
将本地分支推送到远程
$ git push -u origin dev:release/caigou_v1.0
git push <远程主机名> <本地分支名>:<远程分支名>
可以将提交历史一并迁移到新仓库
git clone --mirror https://github.com/xxxxxxx/oldProject.git
cd oldProject.git
git remote set-url –-push origin https://github.com/xxxxxxx/newProject.git
git push –-mirror
添加子模块
git submodule add <url> <path>
git commit 提交完成子模块的添加
删除子模块
rm -rf
子模块目录 删除子模块目录及源码vim .gitmodules
删除项目目录下.gitmodules
文件中子模块相关条目vim .git/config
删除配置项中子模块相关条目rm .git/module/*
删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可执行完成后,再执行添加子模块命令即可,如果仍然报错,执行如下:
git rm --cached 子模块名称
完成删除后,提交到仓库即可。
执行git rm --cached 子模块名称
可能会报错: fatal: please stage your changes to .gitmodules or stash them to proceed
需要先暂存下.gitmodule,即先git add 一下.gitmodule
成功删除后重新 git submodule init
报错:could not get a repository handle for submodule
直接删掉所有子模块目录,重新init和update
你的记录是落后于master的,同步后可以正常工作
git submodule sync --recursive
git submodule update
git submodule update --remote
git add .
git stash
git pull
git stash pop
版权声明:本文为CSDN博主「逸尘️」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/haoaiqian/article/details/78284337
在某一个分支的修改要合并到一个新建分支上
//步骤1:在当前的分支上的修改暂存起来
git stash
//步骤2:暂存修改后,在本地新建分支(new_branch为新分支的名字)
git checkout -b new_branch
//步骤3:将暂存的修改放到新建分支中
git stash pop
git diff --name-only --diff-filter=U
要将一个 feature 分支合并到一个 release 分支,并只保留一次提交记录,你可以按照以下步骤操作:
首先,确保你的 feature 分支和 release 分支都是最新的,并且已经从远程仓库拉取了最新的更改:
git checkout feature-branch
git pull origin feature-branch
git checkout release-branch
git pull origin release-branch
然后,在 release 分支上使用以下命令将 feature 分支合并,并只保留一个提交记录:
git merge --squash feature-branch
这将会将 feature 分支上的所有更改合并到 release 分支,但是并不会自动创建提交。它会将这些更改放在暂存区中,等待你执行下一步操作。
接下来,创建一个新的提交来包含这些更改:
git commit -m "Your new combined commit message"
最后,如果需要,将这个新的 release 分支推送到远程仓库:
git push origin release-branch
这样就会将 feature 分支合并到 release 分支,并只保留一次提交记录。请记住,在执行这些操作时,你正在改变提交历史,因此请确保你知道自己在做什么,并且不要在公共分支上执行这些操作,以免影响其他人的工作。
文章浏览阅读1.1k次。一、选择题1. 串行接口是指( )。A. 接口与系统总线之间串行传送,接口与I/0设备之间串行传送B. 接口与系统总线之间串行传送,接口与1/0设备之间并行传送C. 接口与系统总线之间并行传送,接口与I/0设备之间串行传送D. 接口与系统总线之间并行传送,接口与I/0设备之间并行传送【答案】C2. 最容易造成很多小碎片的可变分区分配算法是( )。A. 首次适应算法B. 最佳适应算法..._874 计算机科学专业基础综合题型
文章浏览阅读9.7k次,点赞5次,收藏15次。连接xshell失败,报错如下图,怎么解决呢。1、通过ps -e|grep ssh命令判断是否安装ssh服务2、如果只有客户端安装了,服务器没有安装,则需要安装ssh服务器,命令:apt-get install openssh-server3、安装成功之后,启动ssh服务,命令:/etc/init.d/ssh start4、通过ps -e|grep ssh命令再次判断是否正确启动..._could not connect to '192.168.17.128' (port 22): connection failed.
文章浏览阅读209次。00000000_杰理 空白芯片 烧入key文件
文章浏览阅读475次。2023年初,“ChatGPT”一词在社交媒体上引起了热议,人们纷纷探讨它的本质和对社会的影响。就连央视新闻也对此进行了报道。作为新传专业的前沿人士,我们当然不能忽视这一热点。本文将全面解析ChatGPT,打开“技术黑箱”,探讨它对新闻与传播领域的影响。_引发对chatgpt兴趣的表述
文章浏览阅读259次。用Python数据分析方法进行汉字声调频率统计分析木合塔尔·沙地克;布合力齐姑丽·瓦斯力【期刊名称】《电脑知识与技术》【年(卷),期】2017(013)035【摘要】该文首先用Python程序,自动获取基本汉字字符集中的所有汉字,然后用汉字拼音转换工具pypinyin把所有汉字转换成拼音,最后根据所有汉字的拼音声调,统计并可视化拼音声调的占比.【总页数】2页(13-14)【关键词】数据分析;数据可..._汉字声调频率统计
文章浏览阅读64次。最近在做一个android系统移植的项目,所使用的开发板com1是调试串口,就是说会有uboot和kernel的调试信息打印在com1上(ttySAC0)。因为后期要使用ttySAC0作为上层应用通信串口,所以要把所有的调试信息都给去掉。参考网上的几篇文章,自己做了如下修改,终于把调试信息重定向到ttySAC1上了,在这做下记录。参考文章有:http://blog.csdn.net/longt..._嵌入式rootfs 输出重定向到/dev/console
文章浏览阅读1.2k次,点赞4次,收藏12次。1,先去iconfont登录,然后选择图标加入购物车 2,点击又上角车车添加进入项目我的项目中就会出现选择的图标 3,点击下载至本地,然后解压文件夹,然后切换到uniapp打开终端运行注:要保证自己电脑有安装node(没有安装node可以去官网下载Node.js 中文网)npm i -g iconfont-tools(mac用户失败的话在前面加个sudo,password就是自己的开机密码吧)4,终端切换到上面解压的文件夹里面,运行iconfont-tools 这些可以默认也可以自己命名(我是自己命名的_uniapp symbol图标
文章浏览阅读1.2w次,点赞25次,收藏192次。char*和char[]都是指针,指向第一个字符所在的地址,但char*是常量的指针,char[]是指针的常量_c++ char*
文章浏览阅读930次。代码编辑器或者文本编辑器,对于程序员来说,就像剑与战士一样,谁都想拥有一把可以随心驾驭且锋利无比的宝剑,而每一位程序员,同样会去追求最适合自己的强大、灵活的编辑器,相信你和我一样,都不会例外。我用过的编辑器不少,真不少~ 但却没有哪款让我特别心仪的,直到我遇到了 Sublime Text 2 !如果说“神器”是我能给予一款软件最高的评价,那么我很乐意为它封上这么一个称号。它小巧绿色且速度非
文章浏览阅读4.1k次。一、选择法这是每一个数出来跟后面所有的进行比较。2.冒泡排序法,是两个相邻的进行对比。_对十个数进行大小排序java
文章浏览阅读2.9k次。物联网开发笔记——使用网络调试助手连接阿里云物联网平台(基于MQTT协议)其实作者本意是使用4G模块来实现与阿里云物联网平台的连接过程,但是由于自己用的4G模块自身的限制,使得阿里云连接总是无法建立,已经联系客服返厂检修了,于是我在此使用网络调试助手来演示如何与阿里云物联网平台建立连接。一.准备工作1.MQTT协议说明文档(3.1.1版本)2.网络调试助手(可使用域名与服务器建立连接)PS:与阿里云建立连解释,最好使用域名来完成连接过程,而不是使用IP号。这里我跟阿里云的售后工程师咨询过,表示对应_网络调试助手连接阿里云连不上
文章浏览阅读544次,点赞5次,收藏6次。运算符与表达式任何高级程序设计语言中,表达式都是最基本的组成部分,可以说C++中的大部分语句都是由表达式构成的。_无c语言基础c++期末速成