git bush的命令行风格和linux与unix风格一致。所以这里会先讲一些简单的linux命令
cd 切换到相应子目录cd.. 返回上级目录pwd显示当前目录ls(ll)列出当前目录所有文件touch创建一个新文件,例如:touch index.htmlrm 删除一个文件,如:rm index.htmlrm -r删除一个文件夹rm -rf / 递归清除,/在linux里面表示根目录mkdir 新建一个文件夹,如:mkdir new foldermv 移动文件,如:mv index.htmlreset初始化终端(清屏)clear清屏history在终端输入的命令历史help帮助exit退出cat 查看文件内容sudo passwd root 设置切换root用户密码su 切换root用户sudo apt install git,可能会让你输入密码,然后按照指令向下进行
global表示全局配置,每次git提交都会使用该信息。如果想在某个项目中使用特定的配置,可以在项目配置信息时不加global命令
系统全局配置:影响到系统上的所有用户。linux下位于 /etc/gitconfig;win下位于git安装目录/etc/gitconfig
修改用户配置:影响到单个用户。linux下位于 ~/.gitconfig;win下位于git config --system xxx;查看git config --system --list
C:\Users\用户名\.gitconfig,没有设置用户名就是C:\Users\Administrator\.gitconfig
修改查看当前配置:git config --global xxx; 查看git config --global --list
git config --list
但是基本默认配置都不用修改,只需要设置用户名和emil地址即可
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门,也就是必须声明你是谁,所以<font color=red>必须配置</font>好名字和Email地址。
$ git config --global user.name "Name"
$ git config --global user.email "email@example.com"
可以通过 git config --list查询到上面配置的情况
工作区(Working Directory): 就是你本地存放代码的地方(一整个文件夹)
暂存区(Stage): 保存你工作区进行的改动,一般存放在 .git 目录下的 index 文件(.git/index)中,所以暂存区也叫作索引(index)。
本地仓库(Repository): 将暂存区改动后的代码提交到本地仓库;本地仓库有提交的所有版本数据。其中HEAD文件指向是最新放入仓库的版本(不理解可以等看完修改文件状态部分后再感受一下)
远程仓库(Reomte Directory): 托管代码的服务器
localFolder:git管理的一个本地文件夹,也就是一个本地仓库,包括工作空间和git管理的相关内容.git:存放git管理信息的目录,初始化仓库的时候自动创建,是git的版本库,取消隐藏才会显示workspace:需要通过git进行版本控制的文件,也就是你的代码stage:暂存区,在进入到本地仓库前所有的更新都放在暂存区repository:本地仓库,存放在本地的版本库,有每一次提交的记录;HEAD指向当前的开发分支stash:隐藏状态,是一个工作状态保存栈,用于恢复和保存workspace中的临时状态mkdir gitCode创建本地仓库(创建一个本地文件夹),在准备用git管理的项目的根目录执行:
git init

#clone一个项目和他整个代码的版本信息
git clone [url] #git clone https://github.com/ahua-GitHub/progect.git
git status [filename]
# git status 查看全部文件状态
git add [filename]
# git add . 添加所有文件到暂存区
# 可以将需要提交的文件修改都存放在暂存区,然后用commit一次性提交所有修改
git commit -m "消息内容"
# 创建git的时候,git会自动创建了一个master分支,所以上面的命令就是往本地仓库的master分支上提交更改
问:为什么Git添加文件需要add,commit一共两步呢? 答:因为commit可以一次提交很多文件,所以你可以多次add不同的文件
git diff
文件提交到暂存区后,修改文件可以通过该命令查看修改的详情
提交修改后的文件和提交新文件一样先git add README.md然后git commit -m 'xxxx'
git log
git log命令显示本地仓库从最近到最远的提交日志,我们可以看到3次提交,最近的一次是alter README.me 3,上一次是alter README.me two,最远的一次是alter README.me
alter READMD.me two
git reset --hard HEAD^
可以通过cat README.me,查看文件内容是否回退到alter READMD.me two那一步
但是这时通过git log就没法查看到alter READMD.me 3这一次的版本提交记录了
这时要是想再回到alter READMD.me 3那一次的修改的内容怎么办,git提供了git reflog命令,用来记录每一次命令
可以通过alter READMD.me 3的commit id实现回退操作
git reset --hard 1094a
git checkout -- READMD.megit commit或git add时的状态。这里有两种情况:
(一)READMD.me自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态。
(二)READMD.me已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
git diff HEAD READMD.md查看工作区和把版本库的区别git rm fileName #先删除文件
git commit -m '删除文件' #然后提交到版本库
如果误删,可以通过git checkout -- fileNamet恢复到版本库中的文件版本
git remote add origin [url]
# git remote add origin https://github.com/ahua-GitHub/gitTest.git
# origin是自定义的远程仓库名
git push 远程仓库名 分支
# git push origin master
# master 默认提交主分支
git remote -v查看远程仓库信息:
假如添加的时候地址写错了,或者是想解绑当前远程库,可以用查询出来的远程仓库信息进行解绑
git remote rm origin
<font color = 'red'>注意:</font>假如创建远程时,勾选了自动创建README.md文档或者远程分支内容比本地新,push到远程时可能会报错
将本地代码和远程仓库中的代码合并即可:
git pull --rebase origin master
ssh-keygen -t rsa生成公钥,-t rsa 用来指定加密算法,一直回车即可
C:\Users\用户名\.ssh
~/.ssh
.gitignore文件,记录一些需要排除掉的文件。比如一些编译以后的文件、一些本机的的配置文件或者操作系统本身在目录留下的文件如 .DS_Store。被过滤掉的文件就不会出现在git仓库中(gitlab或github)了,当然本地仓库中还有,只是push的时候不会上传
可以使用Linux通配符。实例
- 星号(*)代表任意多个字符
- 问号(?)代表一个字符
- 方括号([abc])代表可选字符范围
- 大括号({string1,string2,...})代表可选的字符串等。
- 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
- 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
- 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
1)/mtk/ 过滤整个文件夹
2)*.zip 过滤所有.zip文件
3)/mtk/do.c 过滤某个具体文件
4)build/ 忽略build/目录下的所有文件
5)!*.zip 所有.zip结尾的文件不会被过滤
git branch dev # 创建dev分支
git switch dev # 切换到dev分支
# git checkout dev 旧版方法,和撤销修改类似,不建议使用
# git switch -c dev 创建并切换分支
# git checkout -b <name> 旧版方法创建并切换分支
git branch
# 当前分支前面会有一个*
(1)在README.md 中添加如下内容
#this dev branch
1. the one
2. the two
(2)提交代码
1. git add README.md
2. git commit -m "alter for dev"
git switch master
cat README.md
你会发现master主线上的文件内容并没有修改,因为修改提交在dev分支上,而master分支的提交点并未发生变化
git merge dev
#合并指定分支到当前分支,因为当前是master分支,所以这条命令就是将dev分支合并到master分支上
#这时候再看README.md文件就和dev上修改过后的一样了
git branch -d dev
# git branch -D dev 表示强制删除,
git cherry-pick 4c805e2 # git cherry-pick [commit-id]
只会复制 66a32a 这个提交所做的修改,而不会把这个提交所在分支全部merge过来
(1)在README.md 中添加如下内容
#this dev branch
1. the one
2. the two
(2)提交代码
1. git add README.md
2. git commit -m "alter for dev"
(1)在README.md 中添加如下内容
#this master branch
1. the 1
2. the 2
(2)提交代码
1. git add README.md
2. git commit -m "alter for dev"
这时可以cat README.md,查看README.md文件,Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
直接vim README.md修改
然后保存
git add README.md
git commit -m "conflict fixed"
查看,已经合并成功
git log --graph可以看到分支合并图。
这时候dev分支的内容仍然是未合并之前的状态,master分支的内容才是合并后的状态
--no-ff,禁用Fast forward模式
git merge --no-ff -m "merge in no-ff" dev
合并后用git log看看分支历史
实际应用中master分支应该是非常稳定的,也就是仅用来发布新版本
在dev分支上进行开发,也就是说,dev分支是不稳定的,当版本发布的时候,比如1.0,2.0 发布时,把dev分支合并到master上,在master分支发布
开发者都在dev分支上干活,每个人都有自己的分支,不时往dev分支上合并就可以了
git stash
当你正在dev分支cording时,需要创建一个新的分支去修复一个bug,这时可以使用stash去暂存dev分支工作区的内容。(代码修改后没有提交到暂存区或者本地仓库是不能切换分支的)
git stash list
(1)通过git stash apply恢复
恢复后stash内容不删除,需要通过git stash drop删除
(2)通过git stash pop恢复
恢复时把stash的内容也删除了
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el
我有一个涉及多台机器、消息队列和事务的问题。因此,例如用户点击网页,点击将消息发送到另一台机器,该机器将付款添加到用户的帐户。每秒可能有数千次点击。事务的所有方面都应该是容错的。我以前从未遇到过这样的事情,但一些阅读表明这是一个众所周知的问题。所以我的问题。我假设安全的方法是使用两阶段提交,但协议(protocol)是阻塞的,所以我不会获得所需的性能,我是否正确?我通常写Ruby,但似乎Redis之类的数据库和Rescue、RabbitMQ等消息队列系统对我的帮助不大——即使我实现某种两阶段提交,如果Redis崩溃,数据也会丢失,因为它本质上只是内存。所有这些让我开始关注erlang和
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear
关于如何使用git设置类似Dropbox的服务,您有什么建议吗?您认为git是解决此问题的合适工具吗?我在考虑使用git+rush解决方案,你觉得怎么样? 最佳答案 检查这个开源项目:https://github.com/hbons/SparkleShare来自项目的自述文件:Howdoesitwork?SparkleSharecreatesaspecialfolderonyourcomputer.Youcanaddremotelyhostedfolders(or"projects")tothisfolder.Theseprojec