Git学习随笔

Git 是一种分布式版本控制系统,它通过全量镜像仓库实现高效协作和备份。Git 不仅跟踪文件的最新状态,还记录完整历史。工作流程包括工作区、暂存区和版本库三个阶段。常用命令包括克隆、添加、提交、切换分支、合并等。远程仓库操作涉及拉取、推送,分支管理则涵盖创建、切换、合并和删除。Git 还提供了查看提交历史和标签管理功能。
摘要由CSDN通过智能技术生成

https://git-scm.com/book/zh/v2
https://www.runoob.com/git/git-tutorial.html

git(分布式版本控制系统)

客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。
分布式版本控制系统

对待数据方式— 快照流(区别于基于差异(delta-based) 的版本控制)
Git 更像是把数据看作是对小型文件系统的一系列快照。 在 Git 中,每当你提交更新或保存项目状态时,它基本上就会对当时的全部文件创建一个快照并保存这个快照的索引。 为了效率,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个 快照流。
快照流

git 工作流程

git工作流程

Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

git工作区的文件状态:

  • untracked 未跟踪 (未被纳入版本控制) 既不存在于上次快照的记录中,也没有被放入暂存区。
  • tracked 已跟踪 (被纳入版本控制)
    • Unmodified 未被修改状态
    • Modified 已修改状态
    • Stage 暂存状态

文件状态变化图

git 命令

git help
start a working area (see also: git help tutorial)
   clone     Clone a repository into a new directory
   init      Create an empty Git repository or reinitialize an existing one

work on the current change (see also: git help everyday)
   add       Add file contents to the index
   mv        Move or rename a file, a directory, or a symlink
   restore   Restore working tree files
   rm        Remove files from the working tree and from the index

examine the history and state (see also: git help revisions)
   bisect    Use binary search to find the commit that introduced a bug
   diff      Show changes between commits, commit and working tree, etc
   grep      Print lines matching a pattern
   log       Show commit logs
   show      Show various types of objects
   status    Show the working tree status

grow, mark and tweak your common history
   branch    List, create, or delete branches
   commit    Record changes to the repository
   merge     Join two or more development histories together
   rebase    Reapply commits on top of another base tip
   reset     Reset current HEAD to the specified state
   switch    Switch branches
   tag       Create, list, delete or verify a tag object signed with GPG

collaborate (see also: git help workflows)
   fetch     Download objects and refs from another repository
   pull      Fetch from and integrate with another repository or a local branch
   push      Update remote refs along with associated objects

获取命令具体使用(选项信息)

git  [command] -h

获取gitconfig配置文件位置

git config --list --show-origin

git 全局设置
本地设置用户名和邮件地址
右键选择Git Bash

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

查看配置信息

git config --list

获取git 仓库

  • 本地初始化仓库
    选择一个空目录,右键git bash
git init 
  • 从远程仓库克隆
    选择一个空目录,右键git bash
git clone [远程Git仓库地址]

查看文件状态

git status

在这里插入图片描述

跟踪新文件(文件添加到暂存区)

git add user.xml

将文件提交到仓库

git commit -m "备注信息" user.xml 

回顾git commit提交历史

git log

在这里插入图片描述

-<n> 仅显示最近的 n 条提交。
--since, --after  仅显示指定时间之后的提交。
--until, --before 仅显示指定时间之前的提交。
--author          仅显示作者匹配指定字符串的提交。
--committer       仅显示提交者匹配指定字符串的提交。
--grep            仅显示提交说明中包含指定字符串的提交。
-S    			  仅显示添加或删除内容匹配指定字符串的提交。

取消暂存的文件

git reset user.xml

撤消对文件的修改

git checkout -- user.xml

切换到指定版本

git reset --hard commit编号(git log 获得)

远程仓库操作命令

git remote    查看远程仓库
git remote add 添加远程仓库
git clone 从远程仓库克隆
git pull 从远程仓库拉取
git push 推送到远程仓库

查看远程仓库

git remote
git remote -v (显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL)

添加远程仓库

 git remote add pb(简写) https://github.com/paulboone/ticgit

从远程仓库中抓取与拉取

git pull pb(远程仓库别名) 分支名称(master 主分支)
git pull pb(远程仓库别名) 分支名称(master 主分支) --allow-unrelated-histories) 
允许无关的历史

推送到远程仓库

git push origin master

查看某个远程仓库

git remote show 别名 

远程仓库的重命名与移除

git remote rename pb paul
git remote remove paul

分支管理命令

查看分支

git branch
-r 远程仓库的分支
-a 本地仓库的分支
--merged 已经合并当前分支的分支
--no-merged 尚未合并到当前分支

切换创建分支命令:

git checkout -b (branchname)

创建分支命令:

git branch (branchname)

切换分支命令:

git checkout (branchname)

当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。
合并分支命令:

git merge 

删除分支命令:

git branch -d (branchname)

合并分支

git merge (branchname)

Git 查看提交历史

git log 
 --oneline 选项来查看历史记录的简洁的版本
 --graph 选项,查看历史中什么时候出现了分支、合并
 --reverse 参数来逆向显示所有日志
git blame <file> 查看指定文件的修改记录

Git 标签

查看已有标签

git tag
git tag-a [name] 选项意为"创建一个带注解的标签"
git push [shortName] [标签name] 将标签推送到远程仓库
git checkout -b [branch] [标签name] 创建该标签内容一个分支
git show [标签name]命令可以看到标签信息和与之对应的提交信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值