Git 学习笔记(一)

Git 分布式版本控制系统

目录

一、简介


Git 是分布式版本控制系统,与时下较为流行的svn版本控制系统最为显著的区别如下:
Git版本控制系统:
git版本控制系统
svn版本控制系统:
这里写图片描述

Git中的每台主机均可以作为一台独立的服务器来保存一个项目的所有文件,即使远程服务器宕机了,本地的任何一台主机均可以作为服务器使用

二、Git环境配置


下载Git的安装包,打开后一顿下一步就好了

安装好的标志:
在任何人位置单击鼠标右键可以看到有 Git Bash HereGit GUI Here证明已经安装成功

三、Git基本命令


命令 含义
mkdir XX (创建一个空目录 XX指目录名)
pwd 显示当前目录的路径
git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
git add XX 把xx文件添加到暂存区去。
git commit –m “XX” 提交文件 –m 后面的是注释。
git status 查看仓库状态
git diff XX 查看XX文件修改了那些内容
git log 查看历史记录
git reset –hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一个版本 (如果想回退到100个版本,使用git reset –hard HEAD~100 )
cat XX 查看XX文件内容
git reflog 查看历史记录的版本号id
git checkout – XX 把XX文件在工作区的修改全部撤销。
git rm XX 删除XX文件
git remote add origin https://xxx.git 关联一个远程库
git push –u origin master (第一次要用-u 以后不需要) 把当前master分支推送到远程库
git clone https://xxx.git 从远程库中克隆
git checkout –b dev 创建dev分支 并切换到dev分支上
git branch 查看当前所有的分支
git checkout master 切换回master分支
git merge dev 在当前的分支上合并dev分支
git branch –d dev 删除dev分支
git branch name 创建分支
git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list 查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop 删除文件
git stash pop 恢复文件的同时 也删除文件
git remote 查看远程库的信息
git remote –v 查看远程库的详细信息
git push origin master Git会把master分支推送到远程库对应的远程分支上

四、命令详解


4.1 配置账号

git config --global user.name "yourname"
git config --global user.email "email"

这里的--global参数含义为全局的,在这台电脑上的所有 Git 仓库均使用该配置。(当然也可以单独设置)

4.2 创建本地仓库

仓库(关键字repository)用于跟踪文件的修改状态
在 Git Bash 中操作 Git :

mkdir 创建一个文件夹(该文件夹模拟为项目目录)
cd 进入目标文件夹
pwd 显示当前目录
cat test.txt 查看文件内容

命令:

git init

直接为该文件夹(工程)创建 Git 仓库,此时文件夹中便多了一个名为.git的文件夹(Linux中以.开头的文件为隐藏文件)

4.3 创建文件test.txt

在目标文件夹中新建记事本文件test.txt,使用命令:

git add test.txt

将该文件添加到暂存区,使用命令:

git commit -m "修改了text.txt文件"

将暂存区中的修改提交到本地仓库(.git文件夹)管理,其中-m参数的作用是添加注释,其后面的字符串为注释。使用命令:

git status

查看当前状态。该命令将显示出两种颜色来区分当前文件状态

Git 中文件有三类存放位置:
暂存区、本地仓库、远程(GitHub或GitLab)仓库

未添加到Git 暂存区 本地仓库 远程(GitHub或GitLab)仓库
状态 文件修改后 git add 命令执行后 git commit 命令执行后 push 命令执行后
status命令显示颜色 红色 绿色 N/A N/A

4.4 查看文件修改内容

如果文件被修改过未 add 到暂存区,此时的改变可以被以下命令捕捉到:

git diff test.txt

显示如下:
这里写图片描述
*红色的-部分为缺少的,绿色的+部分为新增的内容

4.5 查看历史记录

git log
可选参数:-pretty = oneline 使查询到的log每一行显示一条

4.6 版本回退

git rteset --hard HEAD^
回退两个版本:
    git rteset --hard HEAD^^
回退100个版本:
    git rteset --hard HEAD~100
回退到指定版本:
    git rteset --hard 版本号
查看版本号:
    git reflog

每次 commit 为一个版本

五、工作区与暂存区


工作区:当前目录
暂存区:版本库(.git文件夹)中的stage ,自动创建的 master 分支,指向 master 分支的首指针HEAD

5.1 丢弃未添加到暂存区的内容

git checkout test.txt
该命令有两种情况:
1.当文件内容已经放到暂存区后,又发生了修改,执行此命令将丢弃修改
2.未放到暂存区的修改将会直接丢弃

5.2 删除文件

rm test.txt

相当于放到了回收站,想继续删除的话就执行

git commit

如果想还原文件就执行

git checkout -- test.txt

六、远程仓库与Git分支


6.1 远程仓库配置

远程仓库分为两种:
1. GitHub仓库
2. GitLab仓库

区别:GitHub仓库为开源的,GitLab仓库是闭源的,企业常用

本地仓库和远程仓库的连接使用SSH加密,使用需先配置SSH服务
1.创建SSH key,先看C盘用户目录下有无.ssh目录,如果没有则:

    ssh-keygen -t rsa -C "email"

2.登陆GitHub,Settings -> SSH keys -> Add SSH key -> 粘贴.ssh目录下的公钥内容

6.2 本地仓库和远程仓库建立连接

git remote add origin https://xxx.git

此处的origin为远程仓库的别名,可随意起。网址为远程仓库的url

同步本地代码到远程仓库:

git push -u origin master:master

-u为关联的意思,第一次push时使用。冒号前是本地分支名,冒号后为远程分支名

6.3 创建分支

git checkout -b dev

创建一个名为dev的分支,并切换到该分支。此命令相当于以下两个命令:

git branch dev
git checkout dev

查看分支命令:

git branch

6.4 合并某分支到当前分支

git merge name

如果在合并的过程中产生了冲突,Git会标记冲突,手动将冲突代码解决后再commit

6.5 删除分支

git branch -d dev

*参数-d为删除

6.6 分支管理策略

在合并分支时Git默认的分支管理策略是FastForward,该模式下的分支被删除后将不会保留任何该分支的信息。使用以下命令禁用FastForward模式。

git merge -no-ff -m "注释内容" dev

6.7 查看分支

查看远程分支

git branch -r

查看所有分支:

git branch -a

6.8 将分支推到GitHub

git push origin dev

6.9 删除GitHub上的分支

git push origin : dev

:为删除之意

6.10 推送分支

git push origin master

6.11 建立分支连接

git branch --set-upstream dev origin/dev

6.12 抓取

git pull https://xxx.git

如果有冲突,需解决冲突后再执行 add、commit、push

七、工作现场


在实际应用时,会出现当前的分支上的任务还未完成,不能add到暂存区,此时却出现了bug,需要到bug分支上解决问题
保存当前工作现场(栈):

git stash

恢复现场:

git stash list 查看保存的现场
git stash pop 恢复并删除现场

相当于以下两个命令:

git stash apply 恢复现场
git stash drop 删除现场

猜你喜欢

转载自blog.csdn.net/PitBXu/article/details/81708128