Loading

git版本控制

git 版本控制

版本控制系统, 用于项目的存储、代码共享、代码合并、历史回退、代码追踪功能!

CVS: 2000年以前

SVN: 版本控制软件

Git: 最火

githab: 开源代码平台

  • 工作目录提交到远程仓库

  • 放到仓库需要三步

项目目录__

a, 工作环境中第一次使用必须先配置全局 Git;

修改或新建:使用git前自报家门
git config --global user.name
git config --global user.email

b, 创建Git仓库用来管理当前项目

Windows创建git仓库
打开项目目录>右键>click git bash
git init

output:

Initialized empty Git repository in //  提示创建成功C:/Users/Administrator/Desktop/WEB2108_1/git_study/use_git/.git 目录位置

c, 第一步放到暂存区:内存中的一个区域: 用于临时存储项目文件的修改

查看git仓库状态
git status 

output:

On branch master
No commits yet
Untracked files:/ / 未被追踪的文件没有存储到暂存区
  (use "git add <file>..." to include in what will be committed)
        index1.html
nothing added to commit but untracked files present (use "git add" to track)

将指定文件添加到暂存区
git add 文件名称

将所有未被追踪的文件添加到暂存区
git add . 

添加到暂存区后的output:
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   index1.html 背景颜色变为绿色





d, 第二步放到Git仓库:特殊的目录,保存项目中所有的文件以及每次修改的记录

提交后形成一个版本
git commit -m "描述语言"

output:
[master (root-commit) 8a9b96a] 版本1,写了一个页面
 1 file changed, 14 insertions(+) 
 create mode 100644 index1.html

e, 查看提交日志

git log
只能查看当前版本之前的版本,回退后只能看到之前的版本
进入阅读模式 输入q退出

output:
commit 6de79a07e69786f3b6523c67ce23ee54e3214708 (HEAD -> master) 提交的ID
Author: kyle <2244706890@qq.com> 作者
Date:   Mon Sep 27 15:34:05 2021 +0800 事件

    修改了index1.html 注释内容
git reflog 查看所有的提交日志

output
按照提交顺序和回退查看版本信息
提交的id
6de79a0 HEAD@{1}: reset: moving to 6de79a07e69786f3b6523c67ce23ee54e3214708
6de79a0 HEAD@{2}: reset: moving to 6de79a07e69786f3b6523c67ce23ee54e3214708
6de79a0 HEAD@{3}: reset: moving to 6de79a07e69786f3b6523c67ce23ee54e3214708
6de79a0 HEAD@{4}: commit: 修改了index1.html
e2006f6 HEAD@{5}: commit: 删除了图片
0e50fa6 HEAD@{6}: commit: 修改了index1.html
29afbe0 HEAD@{7}: commit: 这次修改了index1.html文件
9efccf4 HEAD@{8}: commit: 版本3 添加了images目录 中有俩个图片
589873f HEAD@{9}: commit: 第二个版本 背景颜色是红色
所在版本(HEAD -> master)
8a9b96a (HEAD -> master) HEAD@{10}: commit (initial): 版本1,写了一个页面


f, 版本回退

git reset --hard "6de79a07e69786f3b6523c67ce23ee54e3214708"

output:
$ git reset --hard 6de79a07e69786f3b6523c67ce23ee54e3214708
HEAD is now at 6de79a0 修改了index1.html

每次提交到暂存区后都会形成一个新版本

每次回退版本都会覆盖目录下的文件变为 对应版本的目录结构

Git

  • 工作目录 用于保存项目中的文件

  • 暂存区:内存中的一个区域:用于临时存储项目文件的修改

  • Git仓库:特殊的目录,保存项目中所有的文件以及每次修改的记录

git 客户端输出解析

Administrator@I91T1FM30VWNVX5 MINGW64 ~/Desktop/WEB2108_1/git_study/use_git_two (master) 如果有master标识是因为当前打开的gitbash目录是有git仓库的
$

  • git status
$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        RESTFul.html 如果是红色的文字 说明没有进入暂存区,且没进入git仓库中

nothing added to commit but untracked files present (use "git add" to track)


$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        RESTFul.html 如果是绿色的文字 说明进入了暂存区,并没有提交到git仓库

nothing added to commit but untracked files present (use "git add" to track)



$ git status
On branch master
nothing to commit, working tree clean 没有被git管理的文件,同时暂存区没有文件,工作目录也没有文件

创建隐藏文件不让git系统管理

1,如果目录中有的 文件 不想让其进入暂存区

2,有些文件不需要git系统管理,可以忽略

3,使用任意的编辑器创建文件 .gitignore 把忽略的文件名称写进去

1, 创建文件名字叫.gitignore

2,将要忽略的文件路径写入.gitignore 格式为

​ 相对路径1\n

​ 相对路径2

要忽略的文件如:一些模块文件如node的node_modules

项目合并

1, 分支

不影响主线开发的前提下分离出来,目的为了并行开发,最后分支还需要进行合并。
默认只有一个主分支,名称为master

1,1

找到项目目录 打开git bash
执行 git init

1,2 提交主分支

​ 在主分支下把被git所管理的文件提交到git仓库

1,3 创建分支

​ git branch 分支名称

查看所有分支

​ git branch

1,4 切换分支

​ git checkout 分支名称

Merge branch 'product'
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
~



第二次合并时 会弹出这段文字这是linux下的编辑器Vim/Vm软件
这个的意思时问你为什么这样合并?可以写,可以不写。
写了的退出命令
Esc + :wq!
不写的退出命令:
Esc + :q!

1,5 删除分支

git branch -d 分支名称 删除已合并的分支->:

git branch -D 分支名称 强制删除

!!!

a, 默认所在分支是master分支(主分支)

b, 提交主分支后才能创建子分支

c, 通常一个子分支对应一个功能模块 进入一个分支对分支下的功能进行开发

d, 团队协作下通常是一个开发人员开发一个功能模块

e, 切换分支必须保证该分支下没有被git管理的文件也即是必须放入git仓库中

f, 这些做的目的是为了方便协作管理代码

1,5 合并分支

​ git merge 分支名称(打算合并哪个功能写哪个)

提交到远程git仓库

  • 需准备githab或gitee邮箱和密码

git push (有仓库)

1,去gitee创建一个远程仓库 创建好后拿到链接

2,git push 仓库地址 分支名称

上传时登录的密码后默认会记录下

​ win+r > control >用户账户>凭据管理器> windows凭据 找到githab/gitee删除就行

git clone (第一次) 把远程仓库的文件下载到本地

​ git clone 仓库地址

​ 1,找到下载的位置(克隆文件地址) 右键>git bash >输入: git clone 仓库地址

git pull 拉取到本地 (第二次) 仓库存在

​ git pull 仓库地址 分支名称 拉取到本地(前提有仓库)

posted @ 2021-09-27 19:40  guxuanyan  阅读(178)  评论(0)    收藏  举报