GIT版本控制工具
创始人
2025-06-01 18:12:44

Git版本控制工具

第一章 版本控制工具简介

1.版本控制工具的发展历史经过: 原始人工维护状态,本地RCS,集中式如VCS、SVN和分布式如Git;

2.版本控制工具提供了协作开发的能力,借助它们我们可以回到任何时间的代码状态;

3.集中式版本控制工具,几乎所有的动作都需要服务器参与,并且数据安全性与服务器关系很大

4.Git 是分布式版本控制工具,除了与服务器之前进行按需同步之外,所有的提交操作都不需要服务器

第二章Git安装与配置

Git基本配置

  1. 配置个人身份:

首次的Git设定

git config --global user.name "Zhang San"
git config --global user.email zhangsan123@huawei.com

该配置信息会在Git仓库中提交的修改信息中体现,但和Git服务器认证使用的密码或者公钥密码无关(责任追踪、应用之间的用户关联、贡献度统计)

  1. 文本换行符配置:

假如你正在Windows上写程序,又或者你正在和其他人合作,他们在Windows上编程,而你却在其他系统上,在这些情况下,你可能会遇到行尾 结束符问题。 这是因为Windows使用回车和换行两个字符来结束一行,而Mac和Linux只使用换行一个字符。 虽然这是小问题,但它会极大地扰乱跨平台协作。
Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能,如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF:

 git config --global core.autocrlf true

Linux或Mac系统使用LF作为行结束符,因此你不想Git在签出文件时进行自动的转换,当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf设置成input来告诉Git在提交时把CRLF转换成LF,签出时不转换

git config --global core,autocrlf input

这样会在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF.
如果你是Windows程序员,且正在开发仅运行在Windows上的项目,可以设置false取消此功能,把回车符记录在库中:

 git config --global core.autocrlf 
  1. 文本编码配置
  • i18n.commitEncoding 选项: 用来让git commit log存储时,采用的编码,默认UTF-8.
  • i18n.logOutputEncoding 选项:查看git log时,显示采用的编码,建议设置为UTF-8.
#中文编码支持
git config --global gui.encoding utf-8
git config --global i18n.commitencoding utf-8
git config --global 
i18n.logoutputencoding utf-8
#显示路径中的中文:
git config --global core.quotepath false
  1. 与服务器的认证配置

常见的协议分为http/https协议认证和ssh协议认证

#设置口令缓存:
git config --global credential.helper store
#添加HTTPS证书信任:
git config http.sslverify false

ssh协议认证

SSH协议是一种非常常用的Git仓库访问协议使用公钥认证、无需输入密码,加密传输,操作便利又保证安全性

#生成公钥
ssh-keygen -t rsa -C zhangsan1123@huawei.com

添加公钥到代码平台 :

  • 代码平台
  • 进入“Profile Settings’
  • 点击左侧栏的“SSH Keys’
  • 点击“Add SSH Key”,将刚生成的公钥文件的内容,复制到“Public Key”栏,保存即可

第三章 Git基本命令

3.1工程准备

git clone远端服务器的某个工程前提条件:

  • Git账号有访问、下载工程权限
  • 获取该工程的Git仓库URL
#在本地目录下新建git项目仓库
git init [project name]
#克隆远端工程到本地磁盘
git clone [URL]  或者 git lfs clone [URL]
#git lfs clone是针对二进制文件的区别管理

3.2新增/删除/移动文件

  • 在提交修改文件之前,需要git add把文件添加到暂存区;如果该文件是新创建,尚未被git跟踪的,需要先执行git add将该文件添加到暂存区,再执行提交如果文件已经被git追踪,即曾经提交过的。在早期版本的git中,需要git add再提交;在较新版本的git中不需要git add即可提交

  • git rm将指定文件彻底从当前分支的缓存区删除,因此它从当前分支的下一个提交快照中被删除.
    如果一个文件被git rm后进行了提交,那么它将脱离it跟踪,这个文件在之后的节点中不再受git工程的管理。执行git rm后,该文件会在缓存区消失你也可以直接从硬盘上删除文件,然后对该文件执行 git commit,git会自动将删除的文件从索引中移除,效果一样

  • git mv命令用于移动文件,也可以用于重命名文件

    例1:需要将文件codehunter_nginx.conf从当前目录移动到config目录下,可执行:

    git mv codehunter nginx.conf config
    

    例2:需要将文件codehunter_nginx.conf重命名为new_nginx.conf,可执行:

    git mv config/codehunter nginx.conf config/new nginx.conf
    

3.3查看工作区

  • git diff用于比较项目中任意两个版本(分支)的差异,也可以用来比较当前的索引和上次提交间的差异。

image-20230322154601694

  • git status命令用于显示工作目录和暂存区的状态

使用此命令能看到修改的git文件是否已被暂存,新增的文件是否纳入了git版本库的管理。下例中的信息表明: modeules/_init,py已被修改并暂存,LICENSE已被修改但未暂存,README.md已被删除但未暂存,extend.txt已被新建但未跟踪。注意,请保证能理解git status回显的每一行文字含义。

image-20230322154756547

3.4提交更改的文件到本地版本库

git commit主要是将暂存区里的文件改动提交到本地的版本库

在此强调,提交这个动作是本地动作,是往本地的版本库中记录改动,不影响远端服务器。git ommt一般需要附带提交描述信息,所以常见用法是:

git commit file name -m “commit message'

如果要一次性提交所有在暂存区改动的文件到版本库,可以执行:

git commit -a m"commit message'

3.5查看日志

git log用于查看提交历史,会按提交时间由近到远列出所有的历史提交日志,包含每个日志基本包含提交节点、作者信息、提交时间、提交说明等

3.6推送到远端仓库

在使用git commit命令将自己的修改从暂存区提交到本地版本库后,可以使用git push将本地版本库的分支推送到远程服务器上对应的分支。
成功推动远端仓库后,其他开发人员可以获取到你新提交的内容
常用的推送命令格式:

git push origin branch_name

branch name决定了你的本地分支推送成功后,在远端服务器上的分支名,其他人据此可以获取该分支上的改动内容.

你的本地分支名可以与推送到远端的分支名不同:

git push origin branch_name:new_branch_name

### 3.7分支管理

git fetch的作用是,从远端服务器中获取某个分支的更新到本地仓库。注意,与`git pull不同,git fetch`在获取到更新后,并不会进行合并 (即下页中的git merge) 操作这样能留给用户一个操作空间,确认git fetch内容符合预期后,再决定是否手动合并节点。常用的获取远端分支更新命令格式:

git fetch origin remote branch:local branch

如果远程指定的分支与本地指定的分支相同,则可直接执行

git fetch origin remote branch

3.8分支合并

git checkout .

用于回退本地所有修改而未提交的文件内容

git checkout . ,这是条有风险的命令,因为它会取消本地工作区的修改(相对于暂存区),用暂存区的所有文件直接覆盖本地文件,达到回退内容的目的。但它不给用户任何确认机会,所以谨慎使用

如果仅仅想回退某个文件的未提交改动,可以使用

git checkout -filename

来达到目的;如果想将工具区回退 (检出)到某个提交版本,可以使用

git checkout commit_id.

ut .` ,这是条有风险的命令,因为它会取消本地工作区的修改(相对于暂存区),用暂存区的所有文件直接覆盖本地文件,达到回退内容的目的。但它不给用户任何确认机会,所以谨慎使用

如果仅仅想回退某个文件的未提交改动,可以使用

git checkout -filename

来达到目的;如果想将工具区回退 (检出)到某个提交版本,可以使用

git checkout commit_id.

相关内容

热门资讯

6.3股市早8点丨三天假发生了... 三天假发生了啥事?股市早8点 老沙自媒体2025年6月3日(周二)每日大道正道消息▊美股小涨北京时间...
绿通科技:拟现金收购大摩半导体... 【绿通科技筹划收购大摩半导体不低于51%股权】6月2日晚间,绿通科技公告,筹划现金收购江苏大摩半导体...
股市必读:爱博医疗(68805... 截至2025年5月30日收盘,爱博医疗(688050)报收于71.41元,下跌1.76%,换手率1....
销售会“提问”,再冷淡的客户,... 回复“9”限时领《9套销售话术资料包》 作者:Dora 在销售咨询过程中,“高效提问”不仅是获取客户...
原创 德... 2025年2月24日,恰逢俄乌冲突爆发三周年,德国也于前一天举行了新一轮的议会选举。在过去的三年中,...
明天沪主板新股海阳科技申购!聚... 明天,沪主板将迎来一家新股申购! 格隆汇获悉,海阳科技(603382)于6月3日申购,发行价格为11...
三一重工、山推股份谋求赴港上市... 本报(chinatimes.net.cn)记者李贝贝 上海报道工程机械龙头企业纷纷瞄准港股市场:5月...
2024跨境电商平台出海目的地... 今天分享的是:2024跨境电商平台出海目的地中东市场:行业呈现三足鼎立态势,物流和支付是竞争关键 报...
虎嗅【作·嗅之星】周榜第264... 作·嗅之星榜单,以周榜的形式,呈现每周新鲜出炉的优秀作品。2025年5月23日~2025年5月29日...
原创 美... 尊敬的审阅人员和品鉴读者:本文是经过严格查阅相关权威文献和资料。 全文数据有据可依,可供查证。 美...
原创 美... 前言 中国商务部那间熟悉的发布厅里,发言人拿出一摞资料,语气格外严肃。 说好了一起守规矩,结果呢?...
原创 节... 不出意外,大家的仓位越来越轻了。 如果目前的位置是今年的顶部,为什么要想方设法驱赶散户离场呢?大家都...
美股下跌,钢铁股大涨!金价重回... 6月2日,美国三大股指开盘走低,截至22:40发稿,道指跌0.5%,标普500指数跌0.25%,纳斯...
深康佳A:拟择机出售武汉天源不... 新京报贝壳财经讯 深康佳A6月2日晚间公告,目前公司持有武汉天源(301127)股份合计8618.4...
深夜,利空!直线跳水! 深夜利... 美国经济传来利空信号。今晚,美股三大指数盘初集体跳水,道指一度跌超1%。消息面上,ISM公布的数据显...
这个账单,决定后半辈子幸福… ... 图:Hiroki Kawanabe 第一波延迟退休的人出来了。 挺多人晒出来的退休年龄数字,已经有零...
国际金价年内上涨超25%5月纳... 【#国际金价年内上涨超25%##5月纳指涨幅接近10%#】首先来看美股上周交易的情况。受美欧贸易谈判...
深夜!美股下跌,黄金白银原油飙... 北京时间6月2日晚间,美股低开低走。截至22:02,道琼斯跌0.89%,纳斯达克跌0.51%,标普5...
德国银行高管:美政府政策频繁变... 根据德国《商报》6月2日刊发的专访文章,德国国家开发银行复兴信贷银行董事会主席斯特凡·温特尔斯指出,...
理想一季度销量、营收同比有所增... 理想汽车公布2025年第一季度财报。财报显示,第一季度,公司实现营收259亿元,同比增长1.1%;净...
科技破局、全链升级:澳优四大羊... 人们所熟悉的羊奶资源,除了应用在配方奶以外,还有哪些新应用?羊奶的产业化,有哪些技术瓶颈有待突破? ...
靠卖丸子年入百亿,拿下10万家... 订阅 快刀财经 ▲ 做您的私人商学院一粒鱼丸的逆袭史。作者:朱末来源:快刀财经(ID:kuaidao...
每30秒卖一辆,老牌车企在海外... 你还记得“奇瑞QQ”吗?今年又又又打算上市那个。这张国产汽车销量逆袭并称霸海外的成绩单上,奇瑞是MV...
“近视神药”跌下神坛,“眼药大... “近视神药”能成为百亿大药吗??作者 | 赵普编辑丨高岩来源 | 野马财经在眼药领域,尤其是备受瞩目...
棕榈油、豆油、菜油:供给预期双... 【油脂市场供需及价差情况分析】棕榈油方面,产地预估产量环比走高,季节性增产临近,供给预期增加。国内港...
这届高考,仍是史上最难 史上最... 作者 |暴雨再过几天,我们会迎来历史上最难的一届高考。你可能会反驳,1335万名考生,比去年少了7万...
关键时刻,日美关系出现重大转折... 作者 | 无疆编辑 | 剑书日 美关系出现一个重大转折,影响可能不亚于贸易协议。就在最近,曾被拜登坚...
深圳半山巨宅底价成交,3749... “老李,听说了吗?大鹏那栋别墅被人底价捡走了!” “真的假的?那个叶老板花大钱建的城堡,现在才卖三千...
郑商所就丙烯期货和期权合约及期... 5月30日,郑州商品交易所就丙烯期货和期权合约及期货业务细则公开征求意见。这意味着我国产量最大的烯烃...
上涨!金饰价格重回1000元大... 随着国际黄金价格上涨,国内金饰价格重新升至每克千元以上。 6月2日,老凤祥金饰品为1000元/克,这...