百科狗-知识改变命运!
--

Git工作流程和常用命令分享

小肉包1年前 (2023-12-03)阅读数 19#综合百科
文章标签分支内容

git是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。林纳斯·托瓦兹在编写第一个版本时就使用了“git”这个名称, 他将工具描述为“愚蠢的内容跟踪器”。

[上传失败...(image-c23291-1619063471664)]

四个专有名词:

Workspace:工作区

Index / Stage:暂存区

Repository:仓库区(或本地仓库)

Remote:远程仓库

打开本地生成的.git隐藏文件

创建新项目gittest

创建新文件test.txt

git add

git status显示有变更的文件

git restore 撤回文件修改内容

git commit –m “注释”

修改内容-> 执行git diff工作区和本地仓库的差异

git log显示当前分支的版本历史

git reset --hard HEAD^ 当前版本回退到上一个版本

git reset --hard HEAD^ ^ 当前版本回退到上上一个版本

git reset --hard HEAD~100 回退到前100个版本

恢复已经删除的版本

git reflog 展示所有的提交记录

git reset --hard 回退到指定版本

git push origin master 将本地master分支推送到远程master分支,相当于创建远程分支

git checkout -b dev = git branch dev + git checkout dev 创建并切换分支

git branch 不带参数,会列出所有本地的分支;带参数表示创建分支

git branch –d name 删除本地分支(-D表示强制删除)

git branch –r 不带参数,会列出所有远程的分支

git branch --set-upstream-to=origin/ 本地和远程分支关联

git push origin –delete 删除远程分支

git merge release用于合并指定分支到当前分支上

注:Fast-forward表示的合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。在这种模式下,删除分支后,会丢掉分支日志信息。可以使用带参数 --no-ff来禁用”Fast forward”模式。

git merge --no-ff -m “注释”dev

git checkout release 切换release分支

vim test.txt 修改某条内容

git commit test.txt -m “release修改某条内容”

git checkout master 切换master分支

vim test.txt 修改某条同release内容

git commit test.txt -m “master修改某条内容”

git merge release 显示冲突

git status 显示冲突提示

Git用标记出不同分支的内容,其中>>>>release 是指release上修改的内容

vim test.txt 修改内容

git add test.txt

git commit -a -m “fix conflict”

当前分支有没有提交但也不合适现在就提交的内容,Git提供了暂储功能stash

git checkout release

vim test.txt 修改test.txt内容

git checkout develop 此时会提示Aborting

git status 查看当前状态

Git stash list 查看所有暂储列表

git stash apply恢复,恢复后stash内容并不删除,你需要使用命令git stash drop来删除;

另一种方式是使用git stash pop,恢复的同时把stash内容也删除了

创建Git Tag并推送远程服务器

git tag -a V1.0.0 –m“注释” //创建TAG

git push origin V1.0.0 //推送到远程服务器

git push origin --tag //提交所有tag至服务器

git tag -d V1.0.0 //删除本地标签

git push origin --delete tag //删除远程标签

HEAD,它始终指向当前所处分支的最新的提交点。你所处的分支变化了,或者产生了新的提交点,HEAD就会跟着改变

add相关命令很简单,主要实现将工作区修改的内容提交到暂存区,交由git管理。

git add .添加当前目录的所有文件到暂存区

git add 添加指定目录到暂存区,包括子目录

git add 添加指定文件到暂存区

commit相关命令也很简单,主要实现将暂存区的内容提交到本地仓库,并使得当前分支的HEAD向后移动一个提交点。

git commit -m 提交暂存区到本地仓库,message代表说明信息

git commit --amend -m 使用一次新的commit,替代上一次提交

上传本地仓库分支到远程仓库分支,实现同步。

git push 上传本地指定分支到远程仓库

git push --force强行推送当前分支到远程仓库,即使有冲突

git push --all推送所有分支到远程仓库

关于分支,大概有展示分支,切换分支,创建分支,删除分支这四种操作。

git branch列出所有本地分支

git branch -r列出所有远程分支

git branch -a列出所有本地分支和远程分支

git branch 新建一个分支,但依然停留在当前分支

git checkout -b 新建一个分支,并切换到该分支

git checkout 切换到指定分支,并更新工作区

git branch -d 删除分支

git push origin --delete 删除远程分支

关于分支的操作虽然比较多,但都比较简单好记

merge命令把不同的分支合并起来。在实际开放中,我们可能从master分支中切出一个分支,然后进行开发完成需求,中间经过R3,R4,R5的commit记录,最后开发完成需要合入master中,这便用到了merge。

git merge 合并指定分支到当前分支

注:如果在merge之后,出现conflict,主要是因为两个用户修改了同一文件的同一块区域。需要针对冲突情况,手动解除冲突。

rebase又称为衍合,是合并的另外一种选择。

在开始阶段,我们处于new分支上,执行git rebase dev,那么new分支上新的commit都在dev分支上重演一遍,最后checkout切换回到new分支。这一点与merge是一样的,合并前后所处的分支并没有改变。

git rebase dev,通俗的解释就是new分支想站在dev的肩膀上继续下去。

rebase操作不会生成新的节点,是将两个分支融合成一个线性的提交。

rebase也需要手动解决冲突。

1.如果你想要一个干净的,没有merge commit的线性历史树,那么你应该选择git rebase

2.如果你想保留完整的历史记录,并且想要避免重写commit history的风险,你应该选择使用git merge

reset命令把当前分支指向另一个位置,并且相应的变动工作区和暂存区。

git reset —soft 只改变提交点,暂存区和工作目录的内容都不改变

git reset —mixed 改变提交点,同时改变暂存区的内容

git reset —hard 暂存区、工作区的内容都会被修改到与提交点完全一致的状态

git revert用一个新提交来消除一个历史提交所做的任何修改。

在回滚这一操作上看,效果差不多。git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。

在 Git工作区的根目录创建一个特殊的.gitignore文件。

在.gitignore文件中,添加需要忽略的文件。

git rm -r --cached . //将仓库中的index递归删除

git add . //重新添加仓库索引

git commit -m “update git.ignore” //提交

git branch --set-upstream-to=origin/ //重现将本地仓库和远程仓库关联

最后,如果此篇博文对你有所帮助,别忘了点个赞哟~

“流程”和“程序”有什么区别

我先抛砖引玉:

1. 开发性: SQLSERVER不能,ORACLE能装在UNIX上

2. 分区表: SQLSERVER不能,ORACLE能根据INDEX的值的范围,把数据存放到

不同的硬盘空间.

3. AUTONOMOUS_TRANSACTION;SQLSERVER不能,ORACLE能在主TRANSACTION中独立

COMMIT或ROLLBACK子TRANSACTION而不影响主TRANSACTION.

请继续,高分伺候

---------------------------------------------------------------

4.Oracle可以利用回滚表空间查询以前(如1小时前)的信息,SQLServer不能

5.Oracle可以进行用户资源管理(CPU使用率等),SQLServer不能

6.Oracle支持Label Security,SQLServer不能

---------------------------------------------------------------

支持一下,来帖一段

开放性:

SQL Server

只能在windows 上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据量的关键业务时.

Oracle

能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。

可伸缩性,并行性

SQL server

DB2

并行实施和共存模型并不成熟。很难处理日益增多的用户数和数据卷。伸缩性有限。

Oracle

平行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。

如果windowsNT不能满足需要, 用户可以把数据库移到UNIX中。

安全性

SQL server

没有获得任何安全证书。

Oracle Server

获得最高认证级别的ISO标准认证。

性能

SQL Server

多用户时性能不佳

Oracle

性能最高, 保持windowsNT下的TPC-D和TPC-C的世界记录。

客户端支持及应用模式

SQL Server

C/S结构,只支持windows客户,可以用ADO,DAO,OLEDB,ODBC连接.

Oracle

多层次网络计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户连接

操作简便

SQL Server

Git工作流程和常用命令分享

操作简单,但只有图形界面.

Oracle

较复杂, 同时提供GUI和命令行,在windowsNT和unix下操作相同

使用风险

SQL server

完全重写的代码,经历了长期的测试,不断延迟,许多功能需要时间来证明。并不十分兼容早期产品。使用需要冒一定风险。

Oracle

长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险。

---------------------------------------------------------------

Oracle可以建立位图索引,SQLServer不能。

Oracle可以建立函数索引,SQLServer不能。

SQLServer不支持前触发器,所有都是后触发器。

关于Oracle分区表,SQLServer 2000可以使用分区视图,原理也是一样,把不同物理空间的表联系在一起。

SQLServer能支持嵌套事务,事务上加上名字就好,就是说能在主事务中操作子事务。

---------------------------------------------------------------

oracle:

length() lengthb()

sqlserver:

datalength()

---------------------------------------------------------------

不了解sql server

---------------------------------------------------------------

似乎SQLServer只是表级触发器,不支持行级触发器

---------------------------------------------------------------

SQL好象也有命令行的。SQL也支持JDBC的。

ORACLE备份方式比较多,有STANDBY、RMAN、IMP等,SQL就比较简单了。

ORACLE可是实现多个日志文件的镜象,而SQL只有一个日志文件。

ORACLE有很少但很多数量的归档日志,而SQL只有一个日志文件,经常会增加到很大。

ORACLE的BLOCK SIZE可以根据OLTP或者DSS不同的应用自己设置,而SQL只能为8K。

ORACLE的内存是在数据库启动时就由参数文件决定了的,而SQL可以根据应用自动改变。

---------------------------------------------------------------

ORACLE有专门实现树形查询的语法,而SQL没有。

---------------------------------------------------------------

ORACLE可以修改字符集

SQLSERVER不能,必须重新安装

---------------------------------------------------------------

ORACLE可以安装各种平台

SQLSERVER不行

---------------------------------------------------------------

ORACLE可以卖的很贵却还有人买

SQLSERVER不行

---------------------------------------------------------------

也不太了解sqlserver。

它有Orcle中的分析函数和锁吗?

---------------------------------------------------------------

TO:ccbzzp(ccbzzp)

ORACLE可以修改字符集

SQLSERVER不能,必须重新安装

有问题,在SQL SERVER6.5是不可以的,在SQLSERVER2000已经完全可以

EXAMPLE:ALTER DATABSE DB_NAME COLLATE CHINESE_PRC_CI_AS

---------------------------------------------------------------

TO:OldMan0516(凡人0516)

MSSQL SERVER2000是完全可以行触发的!!!

如果大家有和问题可以到SQLSERVER板块去看看:-)

---------------------------------------------------------------

跟本不是一个量级上的东西,没什么可比性。

sql server也没说要和oracle比呀,人家在windowns平台自我完善呢。

---------------------------------------------------------------

---------------------------------------------------------------

ORACLE可以修改字符集

SQLSERVER不能,必须重新安装更改排序规则。

-------------------------------------

alter database 数据库 collate 排序规格

其中,某些排序规则指定CI 不区分大小写,CS 指定区分大小写。

如:alter database 数据库 COLLATE Chinese_PRC_CI_AS

不区分大小写,而

alter database 数据库 COLLATE Chinese_PRC_CS_AS

使之区分大小写。

使用如下命令,可以获得更多的规则:

SELECT *

FROM ::fn_helpcollations()

---------------------------------------------------------------

oracle可以有java过程sqlserver没有,而sqlserver可以用dll。

oracle9i有分析函数,sqlserver没有

oracle有rownum等伪列,sqlserver没有

sqlserver有full join,oracle9i才有

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

vaela

流程:指生产中从原料到制成品各项工序安排的程序。

程序:事情进行的前后秩序。

区别是:流程一般指生产活动的过程,具体到先做什么,怎么做。

  程序指生产、工作、活动、办理各种事情的先后顺序,可以不具体到怎么做。

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)