美文网首页
Git 入门笔记

Git 入门笔记

作者: 无为无味无心 | 来源:发表于2018-11-29 14:34 被阅读0次

什么是Git

基于文件快照的分布式版本控制工具

Git基础概念

三个重要的工作区:

  • 数据仓库:保存了所有Git提交的状态为Commited的文件,相当于集中式版本管理工具中服务器管理的文件数据库,数据仓库文件位于.git目录下
  • 工作目录:工作目录就是用于开发的区域,工作目录的内容从数据仓库中检出指定版本进行修改,修改完成后可将修改内容提交到暂存区域。
  • 暂存区域:暂存区域保存了工作区域提交的文件,“暂存”的意思就是只是对用户修改后需要提交到数据仓库的文件进行暂存,最后可一次性将暂存的内容提交到数据仓库。

工作流程

将它们看作普通的文件目录,它们的操作看成目录间文件的复制操作更容易理解Git的工作原理,其中git仓库比较特殊会保存每一次复制(提交)的内容,而其它两个目录相同内容会被覆盖。

sequenceDiagram
工作区域->>暂存区域: git add(复制)
暂存区域->>git仓库: git commit(增量复制)
git仓库->>工作区域: git checkout(复制)
TIM截图20181129143636.png

Git In Windows

 https://git-scm.com/download/win

基础使用

1.1新建本地仓库

cmd 切换到指定目录 输入git init

Administrator@DESKTOP-O8R77KC MINGW64 /e/WeiWork/Code/OpenCode/DDDStudy
$ git  init
Initialized empty Git repository in E:/WeiWork/Code/OpenCode/DDDStudy/.git/

Administrator@DESKTOP-O8R77KC MINGW64 /e/WeiWork/Code/OpenCode/DDDStudy (master)
$

1.2 设置仓库的用户信息

$ git config user.name "liaowei"
$ git config user.email "474623503@qq.com"

注:设置全局信息需要参加 --global 参数

$ git config --global user.name "liaowei"
$ git config --global user.email "474623503@qq.com"

VS 中文件忽略配置 https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

1.3 文件添加到暂存区

$ git add --a

1.4 查看 状态


$ git status
On branch master
No commits yet
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   .gitignore
        new file:   DDDStudy.Cmd/DDDStudy.Cmd.csproj
        new file:   DDDStudy.Cmd/Program.cs
        new file:   DDDStudy.sln
Administrator@DESKTOP-O8R77KC MINGW64 /e/WeiWork/Code/OpenCode/DDDStudy (master)
$

1.5 提交代码 到本地仓库

-m 参数 标识提交备注

$ git commit -m "init repository commit"
[master (root-commit) e9d481c] init repository commit
 4 files changed, 380 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 DDDStudy.Cmd/DDDStudy.Cmd.csproj
 create mode 100644 DDDStudy.Cmd/Program.cs
 create mode 100644 DDDStudy.sln

1.6 查看提交日志

可以看到刚才提交的时间,提交的备注,提交人信息

$ git log
commit e9d481cb36c59c0047d27a6893b35f485be7ceb8 (HEAD -> master)
Author: liaowei <474623503@qq.com>
Date:   Thu Nov 29 10:21:07 2018 +0800

    init repository commit

git log 文件名 可以查看知道文件提交日志

1.7 文件跟踪 修改 提交

  • 新增文件 git add 文件名字
  • 提交文件 git commmit -m "提交备注"
  • 从git删除文件 git rm 文件 强制删除 git rm 文件 -force

1.8 撤销

  • 撤销工作区的修改 git checkout --文件名 (已经commit)
  • 撤销暂存区的文件 git reset 文件名 (还没commit)

1.9 标签

  • 打标签 git tag -a v0.1 -m "测试版本0.1"
  • 查看所有标签信息 git tag
  • 查看标签信息 git show v0.1

2.1 提交本地仓库到远程仓库
在GitHub 或者其余地方新建远程仓库,这里使用的是微软提供的Azure DevOps

git remote add origin https://liaowei1992.visualstudio.com/DDDStudy/_git/DDDStudy
git push -u origin --all

2.2 分支 branch

  • 查看当前分支 git branch
  • 创建分支 git branch 分支名称
  • 切换分支 git checkout 分支名称
  • 创建且切换分支 git chechout -b 分支名称
  • 合并指定分支到当前分支git merge 分支名称(注意当前分支不能是要合并分支)
  • git merge --no-ff -m "merge with no-ff" dev--no-ff 表示禁用Fast forward,不会丢掉分支信息
  • 删除分支git branch -d 分支名称

使用场景: 目前版本V1.X 开发新版本V2.X 建立新版V2.X分支,开发测试完成后,直接合并到主分支。

分支合并时解决分支冲突:
1 修改冲突后 git commit
2 git log --graph 可以查看分支合并图

  1. 通过游戏学习Git https://learngitbranching.js.org/
  2. 张雪峰老师详细教程:https://www.liaoxuefe ng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

相关文章

  • git 入门

    git 入门学习笔记----3个入门命令:git init、git add、git commit -v 学习场景(...

  • Git book

    目录 git community book git入门 git笔记 git 用法 git安装使用手册 git命令大...

  • Git与GitHub入门总结

    Git与GitHub入门笔记 先了解Git、GitHub git:团队协作开发中,大部分都会用到版本控制软件,比如...

  • GIT 笔记一:基本操作

    GIT 笔记一:基本操作 SVN 笔记一:入门 Git已经非常流行,网络上的教程很多。这里做个归纳吧。命令行操作很...

  • git入门

    git入门 git笔记会随着时间进行更正 更新:2019/10/09 23:02 几个概念 git的三个区域工作区...

  • git的学习笔记-入门

    PS:小白的入门笔记,希望能有用,主要参考廖君Git教程 操作环境说明: github仓库 https://git...

  • 工具集#01 Git 代码版本控制

    目录:Git 入门Git 进阶Git 高阶总结 1. Git 入门 Git global setup Create...

  • 工具集#01 Git 代码版本控制

    目录:Git 入门Git 进阶Git 高阶总结 1. Git 入门 Git global setup Create...

  • Git:git版本控制知识整理和使用说明

    关键词:Git 所有内容来自于《Git从入门到精通》此书的内容提要,作为学习笔记 Git概述 Git是一种分布式版...

  • Git版本控制

    《GitHub入门与实践》笔记推荐Git练习网站:LearnGitBranching 初次使用时,使用下列命令设置...

网友评论

      本文标题:Git 入门笔记

      本文链接:https://www.haomeiwen.com/subject/zdcfcqtx.html