Git的基本操作与命令(二)

   日期:2024-12-26    作者:hprbr 移动:http://mip.riyuangf.com/mobile/quote/37314.html

  Git 是一个强大且广泛使用的分布式版本控制系统,具有众多显著的特点和优势,在软件开发和项目管理中发挥着至关重要的作用。

工作原理

Git 基于分布式架构,每个开发者在本地都拥有整个项目的完整历史和版本库。当进行修改时,Git 会先将更改暂存,然后创建一个新的提交,记录更改的内容和相关信息。

分支机制

这是 Git 的一大特色。分支的创建和切换非常迅速和轻便。您可以轻松创建一个新分支来开发新功能、修复 bug 或进行实验性的更改,而不会影响主分支的稳定性。例如,当您要开发一个重要但可能存在风险的新功能时,可以创建一个专门的分支进行开发,完成并测试通过后再合并到主分支。

版本控制

Git 能够精确地跟踪文件的每一次更改,包括修改的内容、修改者、修改时间等详细信息。您可以随时查看项目的历史版本,比较不同版本之间的差异,甚至可以基于特定的历史版本创建新的分支继续开发。

分布式特性

不像集中式版本控制系统依赖于单一的中央服务器,Git 的分布式架构意味着即使中央服务器出现故障,或者在没有网络连接的情况下,开发者仍然可以在本地进行开发和版本管理。当网络恢复时,再将本地的更改推送到远程服务器或从远程服务器获取最新的更改。

协作开发

在团队协作中,多个开发者可以克隆同一个项目的仓库,各自在本地进行开发,并将自己的更改推送到共享的远程仓库。其他开发者可以拉取这些更改,并进行合并和解决可能出现的冲突。

优点

 - 高效性:操作速度快,尤其是在处理大型项目时。

 - 灵活性:支持各种工作流程和开发模式。

 - 数据安全性:本地副本保证了数据的可用性。

应用场景

 - 软件开发:无论是小型项目还是大型企业级应用。

 - 文档管理:跟踪文档的修订历史。

 - 网站开发:方便管理网站的代码和内容更改。

总之,Git 已经成为现代开发流程中不可或缺的一部分,帮助开发者更有效地管理代码、提高协作效率,并确保项目的可追溯性和稳定性。

工作机制

Git 和 Linux 有着密切的关系。

Linux 内核的开发是 Git 诞生的重要推动因素。Linux 内核是一个庞大且活跃的开源项目,需要一个高效、灵活且强大的版本控制系统来管理其复杂的开发过程。

在 Git 出现之前,Linux 内核开发使用的版本控制系统存在一些局限性。为了更好地满足 Linux 内核开发的需求,Linus Torvalds 亲自开发了 Git 。

Git 的设计理念和特性非常适合像 Linux 内核这样的大型项目以及开源社区的开发模式。它的分布式架构、高效的分支管理和快速的性能,使得众多开发者能够高效地协作开发 Linux 内核。

同时,Linux 社区也对 Git 的推广和发展起到了重要作用。由于 Linux 系统在开发者中的广泛使用,Git 也随之在开源社区中迅速普及和流行。

例如,许多基于 Linux 的开发项目都采用了 Git 进行版本控制,进一步扩大了 Git 在开源领域的应用范围。

总之,Git 和 Linux 相互促进,共同推动了开源软件的发展。

Git与SVN等集中式版本控制系统的主要区别在于,Git是分布式的,而SVN是集中式的。这意味着Git每个开发者都有一个完整的本地仓库,可以在本地进行提交、分支、合并等操作,而不需要依赖网络连接或中央服务器。这样可以提高开发效率,降低服务器压力,增强安全性和灵活性。

Git 作为分布式版本控制系统,每个开发者拥有完整本地仓库的特点确实为开发带来了诸多优势,包括提高效率、降低服务器压力、增强安全性和灵活性等。

对于Git 的特点和优势

- 快速切换分支进行多任务并行开发,这使得开发者能够更高效地同时处理多个功能开发或修复任务。

  例如,一个团队可以同时在不同分支上进行新功能开发和 bug 修复,互不干扰。

- SHA-1 算法为每个提交生成唯一哈希值,有效地保障了数据的完整性和一致性,能够准确识别和追踪每次提交。

- 强大的分支合并能力以及自动或手动解决冲突的机制,使得合并分支的过程相对顺畅。

  比如在合并两个分支时,Git 能够清晰地指出冲突的部分,方便开发者进行处理。

- 支持多种协议进行远程协作,为开发者提供了更多的选择和便利。

  像通过 SSH 协议可以提供更安全的远程访问。

然而,需要注意的是,虽然上述内容准确地描述了 Git 的主要特点和优势,但在与 SVN 等集中式版本控制系统的对比中,还可以进一步补充一些细节。

例如,SVN 对中央服务器的依赖使得在服务器出现故障时可能导致整个团队的开发工作停滞,而 Git 则不会有这种风险。另外,SVN 的分支创建和管理相对较为复杂和重量级,不像 Git 那样灵活和轻便。

总体而言,上述关于 Git 的特点、优势以及与 SVN 等集中式版本控制系统的区别的表述是较为准确和全面的,但可以根据具体的讨论场景和需求,进一步丰富和细化相关内容。

Git的工作流程大致如下

  • 在工作区(Working Directory)中修改文件
  • 将修改添加到暂存区(Staging Area,也称为索引(Index
  • 将暂存区中的修改提交到本地仓库(Local Repository
  • 将本地仓库中的提交推送到远程仓库(Remote Repository
  • 从远程仓库中拉取其他开发者的提交到本地仓库
  • 合并本地仓库中的提交到工作区

其中,工作区是开发者可以看到和编辑的文件目录;暂存区是一个隐藏文件.git/index,用于记录即将提交的文件快照;本地仓库是一个隐藏目录.git,用于存储提交历史和版本信息;远程仓库是一个位于网络上的共享仓库,用于协作开发和备份数据。

分支(Branch 是Git中最重要的概念之一,它可以让开发者在不影响主线(master)的情况下创建自己的工作空间,并在完成后将其合并回主线。Git中的分支非常轻量级,切换分支非常快速。

标签(Tag 是Git中用于标记特定版本的一个引用,通常用于发布或归档目的。标签可以分为轻量标签(Lightweight Tag)和附注标签(Annotated Tag,其中附注标签包含更多的信息,如作者、日期、消息等。

Git可以在多种操作系统上安装,如Windows、Linux、Mac OS X等。安装方法可以参考Git官方文档。

Git的配置分为三个层次,分别是系统级(system)、用户级(global)和项目级(local)。系统级的配置对所有用户和所有项目都有效,用户级的配置对当前用户和所有项目都有效,项目级的配置只对当前项目有效。配置的优先级是项目级 > 用户级 > 系统级。

Git的配置可以通过git config命令进行,例如

  1. 设置用户名

git config --global user.name "Your Name"

  • 设置邮箱

git config --global user.email "your_email@example.com"

  • 查看配置

git config --list

git config --global user.name 用户名

设置用户签名

git config --global user.email 邮箱

设置用户签名

git init 

初始化本地库

git status

查看本地库状态

git add 文件名

添加到暂存区

git commit-m "日志信息" 文件名

提交到本地库

git reflog/git log

查看历史记录

git reset --hard 版本号

版本穿梭

2.1:打开git后端

1)桌面鼠标右键选择显示更多选项-->Git Bash Here打开

2)在桌面上新建文件夹或其他任意目录,然后鼠标右键 --> Git Bash Here(需要初始化文件)

3)   初始化本地库

 git init

4) 查看本地状态      git status

     以下在文件中未创建目录

在文件夹中创建filename.txt,名称可以自己随便起

5)添加到暂存区

  git add 需要添加到暂存库的文件名

6)提交到本地库

git commit -m "日志信息(名字可以任意取" 暂存区需要添加到工作区的文件名

暂存区提交到本地仓库,会产生版本号

7)查看历史记录

git reflog  查看使用历史记录

git log   查看历史记录

8)版本穿梭  (切换版本

git reset --hard 版本号(查看历史记录时候给的版本号

修改文件

首先手动修改文件filename.txt里面的内容

切换版本

2.3、分支操作

2.3.1 分支的好处

  •  同时并进行多个功能开发,提高了开发效率
  • 各个分支再开发过程中,如果某个分支开发失败,不会对其他分支有任何影响,失败的分支删除重新开始即可

2.3.2 分支操作常用命令

git branch 分支名

创建分支

git branch -v

查看分支

git checkout 分支名

切换分支

git merge 需要合并的分支名

把指定的分支合并到当前分支上

2.3.3 查看分支

git branch -v

2.3.4 创建分支

git branch 分支名  (相当于对主线分支的复制)

2.3.5 切换分支

git checkout 分支名

当前所在分支

 切换后所在分支

 查看分支内容->修改分支内容->该分支状态依旧从工作区到暂存区到本地库

Vim 里的基本操作命令

按 i 或 insert 键:进入插入模式,可进行文本编辑。

按 Esc 键:从插入模式或其他模式回到命令模式。

h:向左移动一个字符。

j:向下移动一行。

k:向上移动一行。

l:向右移动一个字符。

yy:复制当前行。

p:在当前行的下方粘贴复制的内容。

dd:删除当前行。

x:删除光标所在位置的字符。

D:删除光标所在位置到行末的内容。

:w:保存文件。

:q:退出 Vim。

:wq:保存文件并退出 Vim。

:q!:强制退出 Vim,不保存文件。

2.3.6 合并分支(正常合并

git merge 需要合并的分支名  //把指定的分支合并到当前分支上

该合并就是对比当前支线与需要合并的支线内容,将不同的内容合并一起 ;这种合并最重要的就是原分支不要做任何修改,只对需要合并的分支修改就好。

查看分支和主线的内容

 合并后当前分支的内容

2.3.7 合并分支(合并冲突

注意事项就是当前分支和合并的分支都不要同时修改,多人合作时,商量好,最好是等到上一个人合并好之后,下一个人再合并进去/提取出来

     

需要手动合并—— 

查看内容

手动合并,将更新的地方修改,然后放到本地库

码云Gitee - 基于 Git 的代码托管和研发协作平台

创建成功之后

  • 在命令行中继续输入代码执行 git add . (add空格后有个点别忘了,表示需要将所有的文件提交到暂存区)

       git add . (这一步是先添加到暂存区

  • 从暂存区添加到远程库,说明自己为什么要上传,方便以后自己查阅 git commit -m “第一次上传”

       git commit -m "第一次上传"文件名称

  •  提交到码云上面,git push origin master

         git push origin (master/创建分支的名字)

         也可以根据gitee仓库里面的命令执行

以上命令执行完成后远程仓库手动刷新即可这个就上传成功

这个就是把你本地的文件或者代码上传到远程仓库里

将文件夹删除干净或者创建新的文件夹

初始化------->拉取

  • 对需要上传的文件内容,右键 --> Git Bush Here 
  • 输入初始化命令 git init 回车  
  • 输入要链接到码云的地址,也就是上面图片需要记住的命令:git remote add origin https://gitee.com/diechangdxd/git-test01.git(与码云链接很重要
  • 拉取码云上的所有文件到项目中来,git pull origin master

git pull origin master

得到的效果

这样就把远程仓库的代码拉取下来,另一种方式克隆

创建新的文件夹或者在其他文件夹中

打开gitee仓库,要拉取的仓库选择克隆

创建与合并分支命令如下

查看分支:git branch

创建分支:git branch name

切换分支:git checkout name

创建+切换分支:git checkout –b name

合并某分支到当前分支:git merge name

删除分支:git branch –d name

分支策略 首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。

Git基本常用命令如下

mkdir: XX (创建一个空目录 XX指目录名)

pwd: 显示当前目录的路径。

git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。

git add XX 把xx文件添加到暂存区去。

git commit –m “XX” 提交文件 –m 后面的是注释。

git pull 命令用于从远程获取代码并合并本地的版本。

git status 查看仓库状态

git diff XX 查看XX文件修改了那些内容

git log 查看历史记录

git reset --hard HEAD^ 或者 git reset --hard HEAD~ 回退到上一个版本(如果想回退到100个版本,使用git reset –hard HEAD~100 )

cat XX 查看XX文件内容

git reflog 查看历史记录的版本号id

git checkout – XX 把XX文件在工作区的修改全部撤销。

git rm XX 删除XX文件

git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库

git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库

git clone https://github.com/tugenhua0707/testgit 从远程库中克隆

git checkout –b dev 创建dev分支 并切换到dev分支上

git branch 查看当前所有的分支

git checkout master 切换回master分支

git merge dev 在当前的分支上合并dev分支

git branch –d dev 删除dev分支

git branch name 创建分支

git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作

git stash list 查看所有被隐藏的文件列表

git stash apply 恢复被隐藏的文件,但是内容不删除

git stash drop 删除文件

git stash pop 恢复文件的同时 也删除文件

git remote 查看远程库的信息

git remote –v 查看远程库的详细信息

git push origin master Git会把master分支推送到远程库对应的远程分支上


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号