git的基本使用

L i n u x − g i t \Huge{Linux-git} Linux−git

文章目录

Git 基本指令的使用

img
  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库

git 基本指令

复制:ctrl+insert

粘贴:shift+insert

上传项目(本地 → 远程仓库)

git init

Git 使用 git init 命令来初始化一个 Git 仓库,执行完 git init 命令后,会生成一个.git 目录,该目录包含了资源数据,且只会在仓库的根目录生成。

如果要在指定的目录下生成仓库,则指令为:

git init newDir 

newDir 为仓库的路径,执行完成之后,会在 newDir 目录下生成一个.git 目录。

执行该命令之后,就可以在当前目录下生成 newtest 文件夹,并在改文件夹下生成.init 文件夹。

拉取项目(远程仓库 → 本地)

git fetch:远程跟踪分支下载所有历史记录

git merge:合并远程仓库的文件到本地

git pullgit fetch+git merge

git clone

使用 git clone 命令可以从 Git 仓库拷贝项目,类似于 SVN 中的 svn checkout,命令格式为:

git clone <url> [directory] 

url 为 git 仓库地址,directory 为本地目录,比如,要克隆某个 Git 代码仓库,可以用下面的命令:

git clone git://github.com/schacon/grit.git

执行完成之后会在当前目录下生成仓库,如果要指定目录下生成,则可以在后面加一个具体的位置路径,如:

git clone git://github.com/schacon/grit.git newgit

git clone 时,可以用不同的协议,包括 ssh, git, https 等,其中最常用的是 ssh,因为速度较快,还可以配置公钥免输入密码,各种写法格式如下:

git clone [email protected]/schacon/grit.git --SSH协议 git clone git://github.com/schacon/grit.git --GIT协议 git clone https://github.com/schacon/grit.git --HTTPS协议 

仓库管理

本地仓库

git status:查看仓库当前状态,显示有变更的文件。

git status -s:获得简短的输出结果。

git log:查看历史提交记录。

点击’q’退出

git reset :回退到上一次的版本。

git reflog:强制回退到之前的某一个状态。

git diff:显示本地文件与暂存区的差异

git restore --staged FileName:将 FileName 从暂存区拉回到本地工作区

git restore "FileName":(如果文件被跟踪,且本地文件删除,这个指令可以恢复)

git reset 修改代号:回退到某一次的版本

git commit -m "XXX" --amend:更改已修改条目(返回并修改先前的提交)

远程仓库

git remote

git remote 命令用于管理 Git 仓库中的远程仓库

git remote:列出当前仓库中已配置的远程仓库

git remote -v:列出当前仓库中已配置的远程仓库,并显示它们的 URL

git remote add <remote_name> <remote_url:添加一个新的远程仓库。指定一个远程仓库的名称和 URL,将其添加到当前仓库中。

git remote rename <old_name> <new_name>:将已配置的远程仓库重命名。

git remote remove <remote_name>:从当前仓库中删除指定的远程仓库。

git remote set-url <remote_name> <new_url>:修改指定远程仓库的 URL。

git remote show <remote_name>:显示指定远程仓库的详细信息,包括 URL 和跟踪分支。

git remote show [remote]:显示某个远程仓库的信息

``:

``:

git remote #列出远程仓库git remote -v #列出并显示URLgit remote add origin https://github.com/user/repo.git #添加新的远程仓库git remote rename origin new-origin #重命名git remote remove new-origin #删除指定远程仓库git remote set-url origin https://github.com/user/new-repo.git #修改URLgit remote show origin #查看远程仓库信息

让 git 忽略对某些文件的跟踪

  1. 新建一个 .gitgnore 文件,然后在里面写:
# ignore all .txt files #注释 *.txt #'*' + 文件类型 

git 常用指令

全局设置

  1. git config --global user.name xxx:设置全局用户名,信息记录在~/.gitconfig 文件中
  2. git config --global user.email [email protected]:设置全局邮箱地址,信息记录在~/.gitconfig 文件中
  3. git init:将当前目录配置成 git 仓库,信息记录在隐藏的.git 文件夹中

常用命令

  1. git add XX :将 XX 文件添加到暂存区
  2. git commit -m "给自己看的备注信息":将暂存区的内容提交到当前分支
  3. git status:查看仓库状态
  4. git log:查看当前分支的所有版本
  5. git push -u (第一次需要-u以后不需要) :将当前分支推送到远程仓库
  6. git clone [email protected]:xxx/XXX.git:将远程仓库 XXX 下载到当前目录下
  7. git branch:查看所有分支和当前所处分支

查看命令

  1. git diff XX:查看 XX 文件相对于暂存区修改了哪些内容
  2. git status:查看仓库状态
  3. git log:查看当前分支的所有版本
  4. git log --pretty=oneline:用一行来显示
  5. git reflog:查看 HEAD 指针的移动历史(包括被回滚的版本)
  6. git branch:查看所有分支和当前所处分支
  7. git pull :将远程仓库的当前分支与本地仓库的当前分支合并

删除命令

  1. git rm --cached XX:将文件从仓库索引目录中删掉,不希望管理这个文件
  2. git restore --staged xx:将 xx 从暂存区里移除
  3. git checkout — XX或git restore XX:将 XX 文件尚未加入暂存区的修改全部撤销

代码回滚

  1. git reset --hard HEAD^ 或git reset --hard HEAD~ :将代码库回滚到上一个版本
  2. git reset --hard HEAD^^:往上回滚两次,以此类推
  3. git reset --hard HEAD~100:往上回滚 100 个版本
  4. git reset --hard 版本号:回滚到某一特定版本

远程仓库

  1. git remote add origin [email protected]:xxx/XXX.git:将本地仓库关联到远程仓库
  2. git push -u (第一次需要-u以后不需要) :将当前分支推送到远程仓库
  3. git push origin branch_name:将本地的某个分支推送到远程仓库
  4. git clone [email protected]:xxx/XXX.git:将远程仓库 XXX 下载到当前目录下
  5. git push --set-upstream origin branch_name:设置本地的 branch_name 分支对应远程仓库的branch_name 分支
  6. git push -d origin branch_name:删除远程仓库的 branch_name 分支
  7. git checkout -t origin/branch_name: 将远程的 branch_name 分支拉取到本地
  8. git pull :将远程仓库的当前分支与本地仓库的当前分支合并
  9. git pull origin branch_name:将远程仓库的 branch_name 分支与本地仓库的当前分支合并
  10. git branch --set-upstream-to=origin/branch_name1 branch_name2:将远程的 branch_name1 分支与本地的 branch_name2 分支对应
  11. git pull origin master –-allow-unrelated-histories:当出现本地仓库不是由远程仓库克隆时,并且远程仓库和本地仓库内容不一致,导致本地 push 的时候出现冲突,此时使用本命令将远程仓库拉回本地,并修改冲突后重新 push 即可。

分支命令

  1. git branch branch_name:创建新分支
  2. git branch:查看所有分支和当前所处分支
  3. git checkout -b branch_name:创建并切换到 branch_name 这个分支
  4. git checkout branch_name:切换到 branch_name 这个分支
  5. git merge branch_name:将分支 branch_name 合并到当前分支上
  6. git branch -d branch_name:删除本地仓库的 branch_name 分支
  7. git push --set-upstream origin branch_name:设置本地的 branch_name 分支对应远程仓库的 branch_name 分支
  8. git push -d origin branch_name:删除远程仓库的 branch_name 分支
  9. git checkout -t origin/branch_name: 将远程的 branch_name 分支拉取到本地
  10. git pull :将远程仓库的当前分支与本地仓库的当前分支合并
  11. git pull origin branch_name:将远程仓库的 branch_name 分支与本地仓库的当前分支合并
  12. git branch --set-upstream-to=origin/branch_name1 branch_name2:将远程的branch_name1 分支与本地的 branch_name2 分支对应

stash 暂存

  1. git stash:将工作区和暂存区中尚未提交的修改存入栈中
  2. git stash apply:将栈顶存储的修改恢复到当前分支,但不删除栈顶元素
  3. git stash drop:删除栈顶存储的修改
  4. git stash pop:将栈顶存储的修改恢复到当前分支,同时删除栈顶元素
  5. git stash list:查看栈中所有元素

疑难杂症

windows系统中文乱码(274\232\350\256\256\346\200\273\347\273\223)

git config --global core.quotepath false

如果不行的话,可以:打开git bush → 右键 → Options → Text → 【Locale = zh_CN,character set = UTF-8】

tree -N # -N选项就是用编码规范来显示

疑难杂症

windows系统中文乱码(274\232\350\256\256\346\200\273\347\273\223)

git config --global core.quotepath false

如果不行的话,可以:打开git bush → 右键 → Options → Text → 【Locale = zh_CN,character set = UTF-8】

tree -N # -N选项就是用编码规范来显示

Read more

Flutter for OpenHarmony: Flutter 三方库 fake_async 掌控时间的魔法,让鸿蒙异步单测快如闪电(单元测试加速神器)

Flutter for OpenHarmony: Flutter 三方库 fake_async 掌控时间的魔法,让鸿蒙异步单测快如闪电(单元测试加速神器)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在 OpenHarmony 应用的单元测试中,异步逻辑是一个避不开的难点。如果你的代码中有 Future.delayed(Duration(minutes: 5)),难道你在跑测试时真的要等上 5 分钟吗?或者如果你在测试一个复杂的动画状态流转,如何精确地模拟时间流逝了 125 毫秒? fake_async 是 Dart 测试工具链中的“时间胶囊”。它能在一个受控的环境中虚拟化时钟。你可以瞬间“拨快”时间,让那些原本需要漫长等待的异步操作立即执行,从而让你的鸿蒙单测运行速度提升千倍。 一、核心虚拟时间原理 它通过接管全局的 Zone,拦截了所有基于时间的调度任务。 elapse(5 mins) 测试用例 fakeAsync 闭包环境 挂起的延迟任务 (Future/Stream) 瞬间拨快虚拟时钟

By Ne0inhk
鸿蒙金融理财全栈项目——生态合作、用户运营、数据变现

鸿蒙金融理财全栈项目——生态合作、用户运营、数据变现

《鸿蒙APP开发从入门到精通》第19篇:鸿蒙金融理财全栈项目——生态合作、用户运营、数据变现 📊🌍💰 内容承接与核心价值 这是《鸿蒙APP开发从入门到精通》的第19篇——生态合作、用户运营、数据变现篇,100%承接第18篇的风险控制、合规审计、产品创新架构,并基于金融场景的生态合作、用户运营、数据变现要求,设计并实现鸿蒙金融理财全栈项目的生态合作、用户运营、数据变现功能。 学习目标: * 掌握鸿蒙金融理财项目的生态合作设计与实现; * 实现金融机构合作、支付渠道合作、数据分析合作; * 理解用户运营在金融场景的核心设计与实现; * 实现用户增长、用户留存、用户转化; * 掌握数据变现在金融场景的设计与实现; * 实现数据服务、数据产品、数据变现; * 优化金融理财项目的用户体验(生态合作、用户运营、数据变现)。 学习重点: * 鸿蒙金融理财项目的生态合作设计原则; * 用户运营在金融场景的应用; * 数据变现在金融场景的设计要点。 一、 生态合作基础 🎯 1.1 生态合作定义 生态合作是指金融理财项目与其他金融机构、

By Ne0inhk
【Linux】Linux进程通信核心技能:搞懂命名管道,轻松了解无血缘进程通信难题!

【Linux】Linux进程通信核心技能:搞懂命名管道,轻松了解无血缘进程通信难题!

前言:欢迎各位光临本博客,这里小编带你直接手撕,文章并不复杂,愿诸君**耐其心性,忘却杂尘,道有所长!!!! IF’Maxue:个人主页  🔥 个人专栏: 《C语言》 《C++深度学习》 《Linux》 《数据结构》 《数学建模》 ⛺️生活是默默的坚持,毅力是永久的享受。不破不立! 文章目录 * 命名管道 * 1. 为什么需要命名管道? * 2. 核心原理:从“文件共享”看懂命名管道 * 3. Linux命令:创建命名管道 * 4. 命名管道代码示例 * 4.1 代码创建命名管道(写方式打开) * 4.2 代码读取命名管道数据 我推荐各位大佬在看这篇这张之前先对匿名管道有一个大致的了解,因为这节内容是基于匿名管道来的,是基这里我给大佬们两个链接,帮助佬们更好的找到匿名管道的知识点!!! MAXUE的匿名管道:https://blog.ZEEKLOG.

By Ne0inhk

Flutter 三方库 at_server_status 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、透明、实时的 @protocol 去中心化身份服务器状态感知与鉴权监控引擎

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 at_server_status 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、透明、实时的 @protocol 去中心化身份服务器状态感知与鉴权监控引擎 在鸿蒙(OpenHarmony)系统的隐私保护应用、去中心化身份管理工具(基于 @protocol 协议)或需要实时监控全球分布式节点健康状况的场景中,如何判定一个 @sign(电子签名标识)背后的 Root 服务器或 Secondary 服务器是否在线、配置是否由于由于由于由于已就绪?at_server_status 为开发者提供了一套工业级的、基于协议栈的状态审计与自检方案。本文将深入实战其在鸿蒙 Web3 身份安全底座中的应用。 前言 什么是 atServer Status?它是 @protocol(一种旨在让用户完全掌控数据的去中心化协议)官方生态的核心组件。

By Ne0inhk