git使用教程

发布时间:2024年01月02日
1.Git介绍
Git 是目前世界上最先进的 分布式 版本控制系统,有这么几个特点:
1. 分布式 :是用来保存工程源代码历史状态的命令行工具
2. 保存点 :保存点可以追溯源码中的文件,并能得到某个时间点上的整个工程项目额状态;可以在该 保存点将多人提交的源码合并,也可以退到某一个保存点上;

3.离线操作性 Git可以离线进行代码提交

4.基于快照 Git 提交是将提交点指向提交时的项目快照,提交的东西包含一些元数据 ( 作者 , 日期,
GPG );SVN 等老式版本控制工具是将提交点保存成补丁文件
5.Git 的分支和合并 :分支模型是 Git 最显著的特点 , 因为这改变了开发者的开发模式, SVN 等版本控制 工具将每个分支都要放在不同的目录中,Git 可以在同一个目录中切换不同的分支 ;
6.分支即时性 :创建和切换分支几乎是同时进行的 , 用户可以上传一部分分支 , 另外一部分分支可以隐 藏在本地,不必将所有的分支都上传到GitHub 中去 ;
7.分支灵活性 :用户可以随时创建合并删除分支 , 多人实现不同的功能,可以创建多个分支进行开发 , 之后进行分支合并,这种方式使开发变得快速, 简单 , 安全。
工作流程
一般工作流程如下:
? ? ? ?1.克隆 Git 资源作为工作目录。
? ? ? ?2.在克隆的资源上添加或修改文件。
? ? ? ?3.如果其他人修改了,你可以更新资源。
? ? ? ?4.在提交前查看修改。 提交修改。
? ? ? ?5.在修改完成后,如果发现错误,可以撤回提交并再次修改并提交
下图展示了 Git 的工作流程:

?

基本概念?
我们先来理解下 Git 工作区、暂存区和版本库概念:
?1.工作区 :就是你在电脑里能看到的目录。
?2.暂存区 :英文叫 stage index 。一般存放在 .git 目录下的 index 文件( .git/index )中,所以我? ? ? 们把暂存区有时也叫作索引(index )。
?3.版本库 :工作区有一个隐藏目录 .git ,这个不算工作区,而是 Git 的版本库。
下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:
1.图中左侧为工作区,右侧为版本库。在版本库中标记为 "index" 的区域是暂存区
stage/index ),标记为 "master" 的是 master 分支所代表的目录树。
2.图中我们可以看出此时 "HEAD" 实际是指向 master 分支的一个 " 游标 " 。所以图示的命令中出现
HEAD 的地方可以用 master 来替换。
3.图中的 objects 标识的区域为 Git 的对象库,实际位于 ".git/objects" 目录下,里面包含了创建的各种对象及内容。
4.当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区修改或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID 被记录在暂存区的文件
索引中。
5.当执行提交操作( git commit )时,暂存区的目录树写到版本库(对象库)中, master 分支会做
相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
6.当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
7.当执行 git rm --cached 命令时,会直接从暂存区删除文件,工作区则不做出改变。
8.当执行 git checkout . 或者 git checkout -- 命令时,会用暂存区全部或指定的文件替换工作区的文
件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。
9.当执行 git checkout HEAD . 或者 git checkout HEAD 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

?

基础常见命令

创建仓库

git init
初始化仓库
git clone
拷贝一份远程仓库,也就是下载一个项目。

提交与修改 ?

git add
添加文件到仓库
git status
查看仓库当前的状态,显示有变更的文件。
git diff
比较文件的不同,即暂存区和工作区的差异。
git commit
提交暂存区到本地仓库。
git reset
回退版本。
git rm
删除工作区文件。
git mv
移动或重命名工作区文件。

提交日志 ?

git log
查看历史提交记录
git blame
以列表形式查看指定文件的历史修改记录

远程操作 ?

git remote
远程仓库操作
git fetch
从远程获取代码库
git pull
下载远程代码并合并
git push
上传远程代码并合并
创建版本库
1. 新建文件夹,用于放置开发文件
2. 通过 git init 命令把这个目录变成 Git 可以管理的仓库:
$ git init
此步之后目录下会出现一个 .git 的目录,这个目录是 Git 来跟踪管理版本库的,这个目录是默认隐藏的,但是不要去动这个文件夹的东西,不然会破坏Git 仓库。

?3. 使用 git add 将文件添加到Git仓库:

$ git add readme.txt

4. 用命令 git commit 把文件提交到仓库:

$ git commit -m "1.0.0"
- m 后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录
到此为止,你成功的在本地仓库维护了一个版本
关联远程仓库
推送
1. GitHub 或者 Gitee 等平台注册并新建仓库
2. 关联远程仓库
$ git remote add origin 仓库地址
添加后,远程库的名字就是 origin ,这是 Git 默认的叫法,也可以改成别的
3. 第一次推送本地库内容到远程库
$ git push -u origin master
把本地库的内容推送到远程,用 git push 命令,实际上是把当前分支 master 推送到远程。
由于远程库是空的,我们第一次推送 master 分支时,加上了 - u 参数, Git 不但会把本地的 master 分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以简化命令
4. 后续修改提交 , 就不用添加 - u
$ git push origin master
删除远程仓库
如果添加的时候地址写错了,或者就是想删除远程库,可以用 git remote rm <name> 命令。使用前,建议先用 git remote - v 查看远程库信息:
$ git remote -v
然后,根据名字删除,比如删除 origin
$ git remote rm origin
此处的 删除 其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身并没有任何改动。要真正删除远程库,需要登录到GitHub ,在后台页面找到删除按钮再删除。
从远程仓库克隆
实际工作中很多时候是从远程仓库克隆
用命令 git clone 克隆一个本地库:
$ git clone 克隆地址

文章来源:https://blog.csdn.net/m0_74265396/article/details/135349739
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。