当前位置: 首页 > news >正文

ubuntu系统下部署使用git教程

在ubuntu系统下部署并使用git教程

1.下载并安装

sudo apt update
sudo apt install git

2.检验安装是否成功

git --version

若输出git版本号即为成功。
在这里插入图片描述

3.配置参数

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git config --global credential.helper store #保存
git config --global --list #查看刚才保存内容

在这里插入图片描述

4.新建仓库

mkdir learn-git
cd learn-git
git init

在这里插入图片描述
若想在当前文件夹下的新文件夹创建git仓库

git init [想要创建的文件夹名字]

5.克隆项目

git clone [github项目地址]

6.工作区和文件状态

6.1 Git 的工作区

Git 的工作区(Working Directory)是你在本地计算机上实际的操作文件目录。它是你进行开发、修改代码的地方。工作区中的文件可以分为以下几种状态:

  • 未跟踪(Untracked):文件刚创建,Git 还没有记录它的历史。
  • 已修改(Modified):文件已经被修改,但还没有被暂存。
  • 已暂存(Staged):文件已经被添加到暂存区,准备提交到仓库。
  • 已提交(Committed):文件已经被提交到 Git 仓库,成为历史记录的一部分。

6.2 Git 的暂存区

暂存区(Staging Area,也称为索引区 Index)是 Git 的一个中间区域,用于暂存即将提交的文件。暂存区的作用是让你可以灵活选择哪些修改需要提交,哪些不需要。

  • 暂存文件:使用 git add 命令将修改的文件添加到暂存区。
  • 取消暂存:使用 git restore --staged <file> 命令将文件从暂存区移出。

6.3 Git 的仓库

仓库(Repository)是 Git 用来存储项目历史记录的地方。它包含了所有的提交记录、分支、标签等信息。仓库中的文件状态是“已提交”的。

6.4 文件状态的转换

文件在工作区、暂存区和仓库之间会经历以下状态转换:

  1. 未跟踪(Untracked)
    • 文件刚创建,Git 不知道它的存在。
    • 使用 git add <file> 将文件添加到暂存区,状态变为“已暂存”。
  2. 已修改(Modified)
    • 文件已经被修改,但还没有被暂存。
    • 使用 git add <file> 将文件添加到暂存区,状态变为“已暂存”。
  3. 已暂存(Staged)
    • 文件已经被添加到暂存区,准备提交。
    • 使用 git commit 将文件提交到仓库,状态变为“已提交”。
  4. 已提交(Committed)
    • 文件已经被提交到仓库,成为历史记录的一部分。
    • 如果文件在工作区中被修改,状态会回到“已修改”。

6.5 文件状态的命令

Git 提供了一些命令来查看和管理文件状态:

  • 查看文件状态
    git status
    
    这个命令会显示当前工作区和暂存区的文件状态,包括哪些文件是“已修改”或“已暂存”。
  • 暂存文件
    git add <file>
    
    将文件从“未跟踪”或“已修改”状态添加到暂存区。
  • 取消暂存
    git restore --staged <file>
    
    将文件从暂存区移出,状态回到“已修改”。
  • 提交文件
    git commit -m "提交信息"
    
    将暂存区的文件提交到仓库,状态变为“已提交”。
  • 查看提交历史
    git log
    

6.6 示例:文件状态的转换

假设你正在开发一个项目,以下是一个文件状态的转换过程:

  1. 创建一个新文件
    touch new-file.txt
    
    • 文件状态:未跟踪(Untracked)。
  2. 查看文件状态
    git status
    
    • 输出:Untracked files: new-file.txt
  3. 暂存文件
    git add new-file.txt
    
    • 文件状态:已暂存(Staged)。
  4. 查看文件状态
    git status
    
    • 输出:Changes to be committed: new-file.txt
  5. 提交文件
    git commit -m "Add new-file.txt"
    
    • 文件状态:已提交(Committed)。
  6. 修改文件
    echo "Hello, Git!" >> new-file.txt
    
    • 文件状态:已修改(Modified)。
  7. 查看文件状态
    git status
    
    • 输出:Changes not staged for commit: new-file.txt
  8. 暂存修改
    git add new-file.txt
    
    • 文件状态:已暂存(Staged)。
  9. 提交修改
    git commit -m "Update new-file.txt"
    
    • 文件状态:已提交(Committed)。

7.git reset 回退版本

git reset  --soft #保存工作区和暂存区内容
git reset --hard #都不保存
git reset --mixed #工作区内容保存,暂存区不保存

8.git diff 查看差异

git diff不加参数默认比较工作区和暂存区文件差别
当你工作区的文件已提交到暂存区再修改工作区内的文件时:

在这里插入图片描述
git diff HEAD比较工作区与版本库的差异
git diff --cached比较暂存区和版本库之间的差异
git diff 两个提交版本ID比较两次提交之间差异
git diff HEAD~ HEAD HEAD表示最新版本 HEAD~表示最新版本的上一个版本

9.如何在版本库中删除文件

1.直接用rm进行本地删除

在这里插入图片描述
此时只删除了本地工作区的文件,暂存区的文件还没有删除。可以使用命令进行查看:

git ls-files

在这里插入图片描述
此时能看到file1文件还在暂存区中,可以使用以下两条命令均可删除。

git add .
git add file1.txt

在这里插入图片描述

2.直接使用git rm进行删除

git rm <文件名>
在这里插入图片描述
无论哪种删除,删除完后记得提交
在这里插入图片描述

10. gitignore

.gitignore 文件的主要作用是告诉 Git 哪些文件或者文件夹是不需要被纳入版本控制的。也就是说,当 Git 在对文件进行追踪和管理时,会忽略掉 .gitignore 文件中列出的那些文件。它通常位于版本仓库的根目录下。例如,如果你有一个名为 “my - project” 的 Git 仓库,那么 .gitignore 文件一般放在 “my - project/.gitignore”。

常见的忽略内容示例

  • 编译产物:在软件开发中,如 C++ 的 .o 文件、Java 的 .class 文件等。这些文件是通过编译源代码生成的,在版本控制中不需要关注它们,因为它们可以通过源代码重新生成。
    • *.o
    • *.class
  • 临时文件:像文本编辑器产生的临时备份文件(如 Emacs 的 *~ 文件),或者 IDE(集成开发环境)产生的临时文件(如 IntelliJ IDEA 的 .idea/workspace.xml)。
    • *~
    • .idea/workspace.xml
  • 环境配置文件:例如,包含数据库连接信息、API 密钥等敏感数据的配置文件。这些信息通常因开发环境不同而有所差异,并且不应该被公开在版本库中。
    • config/database.yml
  • 操作系统相关的文件:不同操作系统的系统文件,如 Windows 的 Thumbs.db 文件(用于存储文件夹缩略图信息)。
    • Thumbs.db
      本次演示编辑.gitignore忽略log日志文件。
vim .gitignore

在这里插入图片描述

11. SSH配置和克隆仓库

现在注册github账号并创建新的仓库用于远程连接
在这里插入图片描述

  • 使用https方式将代码push到远程仓库时会验证账户和密码。
  • 使用ssh不需要验证用户名和密码,但需要在git仓库里添加SSH公钥。

配置公钥

cd .ssh
ssh-keygen -t rsa -b 4096
#回车然后输入密码
ls -ltr #生成了一个id_rsa.pub的公钥
vim id_rsa.pub#将里面内容全部复制

在这里插入图片描述
回到github网站点击个人头像setting,找到SSH and GPG keys 创建新SSH keys ,把内容复制进去,随便取名。
在这里插入图片描述
返回新建远程仓库,点击url旁边复制按钮,本地克隆。
在这里插入图片描述

本地文件上传

cd remote-repo/
echo hello>hello.txt
git add .
git commit -m "first commit"
git push

在这里插入图片描述
如果想把远程仓库内的内容更新到本地仓库,则需要使用

git pull

12.关联本地仓库和远程仓库

  1. 添加远程仓库

    使用 git remote add 命令将远程仓库关联到本地仓库。例如,假设远程仓库 URL 是 https://github.com/username/repository.git,你可以这样做:

    git remote add origin https://github.com/username/repository.git
    

    其中,origin 是远程仓库的默认名称,通常你可以保持这个名称,但也可以自定义为其他名字。

  2. 查看远程仓库是否添加成功

    使用以下命令查看远程仓库信息:

    git remote -v
    

    你应该能看到类似这样的输出:

    origin  https://github.com/username/repository.git (fetch)
    origin  https://github.com/username/repository.git (push)
    
  3. 推送到远程仓库

    如果你已经在本地做了提交,并且想要将它们推送到远程仓库,可以使用:

    git push -u origin master
    

    这里,master 是你要推送的分支。如果你使用的是 main 分支,命令应该是:

    git push -u origin main
    
  4. 获取远程仓库更新

    如果远程仓库有更新,你可以使用以下命令从远程仓库拉取(fetch)或合并(pull)更新:

    git pull origin main
    

这样,本地仓库就和远程仓库关联并同步了。如果遇到合并冲突,你可以手动解决冲突后提交。
未完待续

相关文章:

  • 配置Intel Realsense D405驱动与ROS包
  • mysql数据库查看进程
  • 使用react的ant-design-pro框架写一个地图组件,可以搜索地图,可以点击地图获取点击的位置及经纬度
  • 【Deepseek学习大模型推理】MOONCAKE: A KVCache-centric Architecture 第一部分引言部分
  • springboot集成openfeign
  • How to install cuda-toolkit on Dell XPS 9560 with Linux mint 21
  • 安全邮件系统的Maple实现详解
  • C# 设计原则总结
  • Sci期刊的编辑会对投稿论文进行查重吗?
  • 560. 和为 K 的子数组(java)
  • 熊海CMS Cookie脆弱
  • linux系统调用
  • springmvc入门案例
  • 【编译原理】第三章 习题
  • React 5 种组件提取思路与实践
  • UIAutomator 与 Playwright 在 AI 自动化中的界面修改对比
  • IP-guard离线卸载客户端及清除策略说明
  • 基于Python Socket的多线程聊天程序实现
  • pod内部共享命名空间与k8s命名空间是一个东西吗?
  • Podman Desktop:现代轻量容器管理利器(Podman与Docker)
  • 国防部:希望美方不要有“受迫害妄想症”,总拿别人当借口
  • 习近平举行仪式欢迎肯尼亚总统鲁托访华
  • 湖南永州公安全面推行“项目警官制”,为重点项目建设护航
  • 河南省鹤壁市人大常委会副主任李杰接受审查调查
  • 远香湖畔“戏”味浓,“吾嘉有戏”探索戏剧与图书跨界融合
  • 特朗普:无意解雇鲍威尔,但美联储应该降低利率