当前位置:   article > 正文

Git学习随笔

Git学习随笔

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
  • 1
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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

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

git  [command] -h
  • 1

获取gitconfig配置文件位置

git config --list --show-origin
  • 1

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

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

查看配置信息

git config --list
  • 1

获取git 仓库

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

查看文件状态

git status
  • 1

在这里插入图片描述

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

git add user.xml
  • 1

将文件提交到仓库

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

回顾git commit提交历史

git log
  • 1

在这里插入图片描述

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

取消暂存的文件

git reset user.xml
  • 1

撤消对文件的修改

git checkout -- user.xml
  • 1

切换到指定版本

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

远程仓库操作命令

git remote    查看远程仓库
git remote add 添加远程仓库
git clone 从远程仓库克隆
git pull 从远程仓库拉取
git push 推送到远程仓库
  • 1
  • 2
  • 3
  • 4
  • 5

查看远程仓库

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

添加远程仓库

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

从远程仓库中抓取与拉取

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

推送到远程仓库

git push origin master
  • 1

查看某个远程仓库

git remote show 别名 
  • 1

远程仓库的重命名与移除

git remote rename pb paul
git remote remove paul
  • 1
  • 2

分支管理命令

查看分支

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

切换创建分支命令:

git checkout -b (branchname)
  • 1

创建分支命令:

git branch (branchname)
  • 1

切换分支命令:

git checkout (branchname)
  • 1

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

git merge 
  • 1

删除分支命令:

git branch -d (branchname)
  • 1

合并分支

git merge (branchname)
  • 1

Git 查看提交历史

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

Git 标签

查看已有标签

git tag
  • 1
git tag-a [name] 选项意为"创建一个带注解的标签"
git push [shortName] [标签name] 将标签推送到远程仓库
git checkout -b [branch] [标签name] 创建该标签内容一个分支
git show [标签name]命令可以看到标签信息和与之对应的提交信息
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/672981
推荐阅读
相关标签
  

闽ICP备14008679号