- clear:清屏
- cd 文件夹名称----进入文件夹
- cd … 进入上一级目录(两个点)
- dir 查看当前目录下的文件和文件夹(全拼:directory)
- Is 查看当前目录下的文件和文件夹
- touch 文件名----创建文件
- echo 内容 > 创建文件名----创建文件并写入内容
- rm 文件名----删除文件
- mkdir 文件夹名称----创建文件夹 mk:make
- rmdir 文件夹名称----删除文件夹 rm:remove
- cat 文件名----查看文件内容 :cat .git/HEAD
- cat 1.txt >> 2.txt 将文件1.txt内容写入到2.txt
- i 表示编辑模式
- esc键 表示退出编辑模式
- :wq! 表示保存文件并关闭文件
- vim 文件名 打开文件

git入门
git常用命令大全
git原理及使用
git工作开发流程
Git Code Review设置与使用
腾讯工工蜂使用文档
1.在终端,检查git是否安装
git --version
2.没有安装的话去,官网,下载git
3.一直点下一步即可
4.安装后在终端检查git是否安装好
5.设置用户名和邮件地址(最好和GitHub的用户名/邮箱保持一致)
git config --global user.name “自己的用户名”
git config --global user.email “自己的邮箱”
#检查是否配置成功
git config --global --list

概念:仓库是源代码的管理中心,每一个项目都会存入对应的仓库,该仓库会对源代码进行管理以及对项目进度进行管理
创建仓库:
1.登录GitHub
2.登录后,页面右上角点击头像

3.进入仓库首页,在右上角点击new按钮

4.进入新仓库创建页面(仓库命名要求:不能使用中文 ,不能使用大写字母 ,复杂名称使用中横线连接)

1.在本地创建项目文件夹test-demo
2.在test-demo文件夹下,创建demo.html/demo.css/demo.js
3.在根目录下,创建.gitignore文件,用于设置忽略文件,不需要git管理的文件
#直接书写需要被忽略的文件名或者文件夹名称
1.txt
4.打开终端,进行git仓库初始化
git init

5.在终端,添加git仓库追踪文件
git add .
6.在终端,提交本地源代码到本地仓库
git commit -m “第一次提交git测试代码”
7.查看本地仓库状态
git status
8.通过https协议,将 本地仓库(在自己电脑上) 和 远程仓库(在github网站上) 进行连接
git remote add origin https://github.com/Ocean490724726/test-demo.git
#查看远程分支
git remote -v
#删除远程分支
git remote rm origin
9.将本地仓库代码 push到 远程仓库(此时可能提示输入用户名和密码:指的是github上的)
git push -u origin master
#以上完整写法:git push --set-upstream origin master:master
#表示1.将代码从本地下流master分支 推送到 远程上流分支master
#表示2:下流master和上流master建立连接,以后直接使用git push即可,默认推送到上流master分支
第一次push之后,输入远程仓库的用户名和密码提示(之后就不会提醒了)
代码push远程仓库成功提示
1.克隆
git clone 远程仓库地址 【本地仓库名称】
git clone https://git.code.tencent.com/git-class-001/git-test.git
查看提交记录
- git status 查看当前分支状态
- git log 查看当前提交记录
- 结束git log命令:英文状态下按Q就可以了
1.查看当前分支状态
2.根据两种情况:
如果都在工作区,未被追踪,
或者有些在工作区,有些在暂存区(add了)
git add .3.此时都在暂存区
git commit -m “”
4.如果都在本地仓库
git push -u origin master
1.查看当前分支状态
git status
2.手动删除或者命令行删除文件
#手动删除:
命名行删除文件,可以直接进入git commit -m “”
git rm 文件名3.查看当前分支状态
git status
4.追踪修改(命令行删除文件可以跳过该步骤)
git add .
5.查看当前分支状态
git status
6.提交修改
git commit -m “”
7.查看当前分支状态
git status
手动重命名
1.查看分支状态
git status
2.删除重命名前的文件名
git rm test1.html
3.追踪重命名后的文件名
git add demo.html
4.查看状态
git status
5.提交
git commit -m “手动重命名”
6.查看提交记录
git log
——————————————————————————————————
命令行重命名(推荐)1.重命名
git mv 原文件名 新文件名
git mv demo.html test1.html2.查看状态
git status
3.提交
git commit -m “命令行重命名”
4.查看提交记录
git log
移动文件,并重命名
1.查看状态
git status
2.移动文件,并重命名
git mv 原文件名称 文件夹名/新文件名
git mv ./test2.html ./home/home2.html3.查看状态
git status
4.提交
git commit -m “移动文件,并重命名”
5.查看状态和提交记录
git status
git log
//结束查看log
q
文件有变化时,如何查看文件前后变化
方式一:1.查看指定文件的所有被修改记录
git log --pretty=oneline home/home2.html
2.根据上面返回的commitId,查看某一次修改详情
#git show 上面获取的commitid
git show c1b64f1eb07c3a024957156fc7590fda7676996d方式二:直接查看
git log -p home/home2.html
q
所有修改文件都是工作区状态下,撤销修改操作,一键还原
1.查看当前文件状态
git status
2.一键还原操作失误文件
git checkout – 文件名
git checkout – * 一键还原所有文件的操作
git checkout – test.html test3.html home/test1.html
当文件已经被add了,处于暂存区,撤销追踪操作
1.查看当前文件状态
git status
2.撤销追踪操作
git reset HEAD 文件名
git reset HEAD test3.html
本次add的文件撤销到工作区
git reset HEAD *3.一键还原到上次提交状态
git checkout – test3.html
1.在根目录下,创建version.html 和 v.html两个文件,添加内容(h1 版本1 /h1)视为”版本1“,并提交
git add .
git commit -m “版本1”
git status
git log --pretty=oneline2.将内容改为“版本2”,追踪并提交
git commit -am “版本2”
git status
git log --pretty=oneline
执行git commit -am "提交描述"即可将add和commit操作合并, 不需要先git add file 再 git commit -m “提交描述” 了3.按照第二步骤,继续提交版本3,版本4,版本5
不要忘记修改h1标签里的内容
4.查看所有历史记录
git log --pretty=oneline
5.回到上一版本,已经提交,没有push
#git reset --soft 上一个commitID 撤销commit
git reset --soft 版本4的commitID # 撤销版本5的commit
#git reset --mixed 上一个commitID 两个动作
git reset --mixed 版本4的commitID 撤销版本5的commit和add两个动作
#撤销并舍弃版本号之后的所有提交记录,使用需要谨慎!!!
#撤销后,工作区是版本4的代码,版本5丢失了,谨慎使用!!!
git reset --hard HEAD^
#回到上两个版本
git reset --hard HEAD^^
#回到上三个版本
git reset --hard HEAD~3
#方式二:通过commit id的前7位,回到指定版本(往前/往后都可以)
git reset --hard 4732336.已经提交,且push
#由于远程仓库版本号为版本5 低于 本地仓库版本4 ,不需要push,拒绝push
git reset --hard 版本4的commitID
#撤销,但是保存了提交记录
git revert 当前的版本5的commitID # commitID是最新提交的commitID,
#再进行push到远程仓库
git push7.查看当前状态
git status
1.当前所有文件都处理版本5
#确认状态是否为干净的
git status
git log --pretty=oneline
2.为了验证其他文件还在版本5,只有指定文件回到指定版本,标记一下其他文件3.根据commit id,回退指定文件到指定版本
git log --oneline 查看所有提交过的版本
git checkout commitID – 指定回退文件
git checkout 62cad8 – version.html4.回退后截图
5.查看当前状态
git status
6.追踪并提交
git commit -m “将指定文件回退到指定版本”
7.查看状态
git status
git log --pretty-oneline
1.本地创建项目,初始化,并提交到本地仓库
2.在github创建远程仓库
3.提交到远程仓库
4.新增css/js文件,并提交到本地仓库
git status
git add .
git commit -m “”5.push到远程仓库
git push -u origin master
1.创建标签(默认给最近的一次commit)
#git tag v版本号
git tag v1.02.查看标签
git tag
3.查看标签添加位置
git log
4.给指定commit,添加标签
git tab v版本号 commitID
git tag v0.5 69d1135.查看是否添加标签
git tag
git log --pretty=oneline6.删除指定标签
git tag -d v0.5
7.将添加标签v1.0,push到远程仓库
git push origin v1.0
8.在github上查看tag
1.创建分支
git branch 分支名
git branch dev2.查看所有分支
#当前活动分支 带* 并且高亮
git branch3.创建test分支
git branch test
git branch4.切换分支
#git checkout 分支名 注意:切换前提:保证当前分支工作区clean状态
git checkout dev
查看当前分支
git branch5.删除分支
#查看当前所有分支
git branch
#git branch -d 分支名
#不能删除当前活动分支 也不能删除 commit之后 但 没有merged的分支(即> 处于本地仓库的分支)
git branch -d test6. 创建并切换到新创分支
git checkout -b test
7.测试处于本地仓库的分支,能否被删除
7.1在test分支,commit一段代码
git add .
git commit -m “”
7.2切换到dev分支
git checkout dev
#删除test分支,是否报错,如果需要强制删除,git branch -D test
git branch -d test
7.3如果需要强制删除
git branch -D test
1.在dev分支,开发会员系统,并提交到本地仓库
2.切换到master分支
git checkout master
git branch --查看分支状态3.将dev分支的代码合并到master分支,dev分支不变,master分支代码会被覆盖,结果使用dev分支的代码
git merge dev
如果分工明确,细致,可以避免冲突,但是一旦发生冲突?
1.在master分支,修改test.html中h1标题的内容为“master分支”,并提交
2.切换到dev分支,修改同一个文件的相同位置的内容“dev分支”,并提交
3.切换到master分支,将dev分支合并到master
git merge dev
解决方式一:撤销合并:直接使用master分支代码,舍弃忽略其他分支代码
#放弃忽略合并
git merge --abort
#重新合并,复现冲突,为演示解决方式二准备
git merge dev
解决方式二:和冲突分支的开发人员协商,确定最终保留代码,手动删除冲突
和冲突分支的开发人员协商,确定最终保留代码,手动删除冲突
查看当前分支状态,并提交
git status
git add .
//这里不需要描述 -m,接下来会进入一个可编辑的页面:这里输入描述
git commit
此时在英文模式下,按i,进入可编辑状态
先按 按键esc 退出编辑状态,在英文状态下,再按 :wq ,退出该页面
查看状态
git status --用这一个也可以
git log --pretty=oneline
git push -u origin master
基础分支
1.master
2.develop
一个项目的代码库至少要有master和develop这两个分支。团队成员从主分支(master)获得的都是处于可发布状态的代码,而从开发分支(develop)应该总能够获得最新开发进展的代码。
- 从master上获得的代码一定要保证是和线上运行的程序是一致的。
- 从develop上获得的应该是最新的稳定版本的代码。
除了基础分支外,我们还需要辅助分支。辅助分支大体包括如下几类:“管理功能开发”的分支、“帮助构建可发布代码”的分支、“可以便捷的修复发布版本关键BUG”的分支。
辅助分支的最大特点就是“生命周期十分有限”,完成使命后即可被删除。辅助分支
- Feature branch
- Release branch
- Hotfix branch
Feature branch
从develop分支检出,最终也会合并于develop分支。常用于开发一个独立的>新功能,且其最终的结局必然只有两个,其一是合并入“develop”分支,其二>是被抛弃。最典型的“Fearture branches”一定是存在于团队开发者那里,而>不应该是“中心版本库”中。
通过下面的命令来解释这个流程
git checkout -b myfeature develop
#在myfeature上开发完代码之后,需要合并到develop分支上
git checkout develop
git merge myfeature
git branch -d myfeature
git push origin developRelease branch
从develop分支检出,最终合并于“develop”或“master”分支。这类分支建议命名为“release-*”。通常负责“短期的发布前准备工>作”、“小bug的修复工作”、“版本号等元信息的准备工作”。与此同时,“develop”分支又可以承接下一个新功能的开发工作了。在一>段短时间内,在“Release branch”上,我们可以继续修复bug。在此阶段,严禁新功能的并入,新功能应该是被合并到“develop”>分支的。“Release branch”产生新提交的最好时机是“develop”分支已经基本到达预期的状态,至少希望新功能已经完全从“Feature >branches”合并到“develop”分支了。
经过若干bug修复后,“Release branches”上的代码已经达到可发布状态,此时,需要完成三个动作:第一是将“Release >branches”合并到“master”分支,第二是一定要为master上的这个新提交打Tag(记录里程碑),第三是要将“Release branches”>合并回“develop”分支。
通过下面的命令来解释这个流程
git checkout -b release-1.2 develop
#修改版本号等元信息的准备工作或者小bug的修复工作后 要合并到master
git checkout master
git merge release-1.2
git tag -a 1.2 #发布前要建立里程碑
#如果有bug的修改,还需要合并到develop
git checkout develop
git merge release-1.2
git branch -d release-1.2 #最后删除这个发布分支,它已经完成使命Hotfix branch
从“master”检出,合并于“develop”和“master”,通常命名为“hotfix-*”
建议设立“Hotfix branches”的原因是:线上总是可能产生非预期的关键BUG,希望避免“develop分支”新功能的开发必须为BUG修复让路的情况。
BUG修复后,需要将“Hotfix branches”合并回“master”分支,同时也需要合并回“develop”分支
通过下面的命令来解释这个流程
git checkout -b hotfix-1.2.1 master
#修复完BUG之后,要合并到master
git checkout master
git merge hotfix-1.2.1
git tag -a 1.2.1 #修改线上BUG需要打标签
#修复完BUG之后,也要合并到develop
git checkout develop
git merge hotfix-1.2.1
git branch -d hotfix-1.2.1 #最后hotfix的分支使命完成,删除之
这就是一个非常好的分支管理模型。
所以,在我们的gitlab上面我们一定至少要有2个分支
master 永远保持和线上代码同步,在上线部署时从这个分支拉去代码打包。如果我们的DI工具到时的功能完善,则DI工具直接从这个分支去代码打包发布
develop 我们的持续集成工具从每天从这个分支上取代码编译大包部署到测试环境(KVM,Docker)。
每次上线前都要建立里程碑Tag
不同人想要查看版本路线如何进行操作
git log --oneline 查看简化的提交记录git log --oneline --graph 查看当前分支提交版本路线
git log --oneline --graph --all 查看所有分支的版本路线图
git log --oneline --graph 【-number】 查看当前分支提交版本路线图
不同人想要删除不想要的分支如何操作
1.在github上dev分支下,创建两个xiaoli分支和xiaohuang分支 2.在本地复制一份代码:命名为xiaoli 和xiaohuang3.分别在以上两个项目下,进行如下操作:
在终端fetch远程仓库代码
git fetch
查看所有的分支
git branch -av
删除远程分支 #删除远程分支之前,确保该分支不用了 以及 确保该分支代码都merge到主分支上
git push origin --delete xiaoli
在github上,查看是否被删除
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po