笔者工作流程篇
step 1
配置好自己的 Git 基本信息和 GitHub 的 ssh 免密登录。
首先在 GitHub 上创建一个远程仓库,空的内容。
获取到该空仓库的 ssh 访问地址。
step 2
# 本地创建空文件夹,作为本地仓库。
# 进入空文件夹,初始化 Git 仓库
cd your_dir
git init
# 创建 README.md 文件,并编辑内容
touch README.md
vim README.md
step 3
# 查看本地仓库文件状态,工作区文件
git status
# 文件提交到暂缓区
git add filename
# 查看文件状态
git status
# 文件提交到本地 Git 仓库
git commit -m "提交说明"
step 4
# 为该本地仓库设置一个远程仓库
# 注意使用 ssh协议 连接的仓库地址,
# 而不用 http 或者https 协议地址,这样可能不能免密登录
git remote add origin github或者gitee仓库地址
# 查看该本地仓库的远程仓库信息
git remote -v
# 将本地 Git 仓库推送(备份)到远程仓库中
git push -u origin master
# 如果不是第一个提交,即远程仓库不是空的,命令如下
git push origin master
step 5
github 或者 gitee 远程仓库即可查看到备份的内容
笔者喜欢先备份到 github ,然后同步更新到 gitee。
简介篇
Git学习笔记
版本管理的演变(VCS之前)
- 集中式VCS:服务端版本库,SVN
- 分布式VCS:客户端和服务端都有版本库,Git
Git特点:
-
最优存储能力
-
非凡的性能
-
开源的
-
容易备份
-
支持离线操作
-
容易制定工作流程
-
学习流程:Git——>GitHub——>GitLab
查看安装的Git版本:git --version
注:CHCP是一个计算机指令,能够显示或设置活动代码页编号。
代码页 描述
65001 UTF-8代码页
950 繁体中文
936 简体中文默认的GBK
437 MS-DOS 美国英语
CHCP是MD DOS中的命令,用来显示或设置活动代码页编号的。
用法是:CHCP [nnn] 其中nnn指定的是代码页的编号。
常见命令篇
配置 user 信息:user.name 和 user.email
$ git config --global user.name "your_name"
$ git config --global user.name "your_email@domain.com"
# 注释:
# --global 对当前用户所有仓库有效
# --local 只对某个仓库有效(缺省配置)
# --system 对系统所有登录的用户有效
# 显示当前Git config的配置,加 --list
# $ git config --list --local
# $ git config --list --global
# $ git config --list --system
建立 Git 仓库
1、将已有的项目代码纳入Git管理
$ cd 项目代码所在文件夹
$ git init
2、新建的项目直接使用Git管理
$ cd 某个文件夹
$ git init your_project #会在当前路径下创建和项目名称同名的文件夹
$ cd your_project
$ git add new_file #添加Git管理文件
$ git status #查看Git当前工作的状态
$ git commit -m"Add a new file" #Git提交文件
往仓库里面添加文件(2次提交)
1、工作目录提交到暂存区
$ git add files
2、暂存区提交到版本历史
$ git commit -m"提交说明"
3、查看Git历史日志
$ git log
4、提交所有被Git跟踪的文件
$ git add -u
5、更改Git仓库里面文件的文件名
$ git mv 原文件名 新文件名
$ git status
$ git commit -m"move a file"
6、查看版本历史
$ git log --online #简易版查看历史
$ git log -n4 --online #查看4条记录
$ git branch -v #查看当前项目版本分支
$ git branch -av #查看所有项目版本分支,当前工作的分支有标明*
$ git log --all #查看所有项目版本历史
$ git log #查看当前分支项目版本历史
$ git log --online --all --graph #以图形化查看项目版本历史
$ git help log #查看log帮助信息
7、gitk——图形化的界面查看Git版本历史信息
8、切换工作分支,在项目路径下
$ git checkout master #master需要切换到的分支
$ git cat-file -t 对象的哈希值 #查看哈希值对应的对象,Git对象有:tree、commit、blob等等
$ git cat-file -p 对象的哈希值 #查看哈希值对应的对象的具体信息内容,也就是那个文件或文件夹
Git对象彼此之间关系
1、commit——>tree——>blob
2、每一个对象都有自己的哈希值索引
3、blob的内容就是可见的文件内容代码
4、文件提交到暂存区就会有对象产生(哈希值索引)
分离头指针(You are in ‘detached HEAD’ status),
在分离头指针后注意与相应分支进行挂钩(绑定,band),否则会被Git清除。
HEAD头指针与Branch分支的关系
删除不需要的分支
$ git branch -av #查看Git仓库分支
$ git branch -d branch_name #删除Git仓库分支
$ git branch -D branch_name #强制删除仓库分支
修改最近一次commit的提交信息message
$ git log -1 #查看最近一个commit信息日志
$ git commit --amend #打开最近一次commit提交信息message
# 3、修改打开的文件message #修改文件内容并保持即更改完成
删除Git仓库文件
$ git rm file_name #删除Git仓库的文件,并不是工作区的文件
紧急处理情况
$ git stach #保存当前的工作区文件,处理完紧急事件后再回来
$ git stach list #查看stach保存的工作
$ git stach apply #回来工作区,当时保存镜像还在
$ git stach pop #回来工作区,当时保存镜像销毁
如何指定不需要Git版本控制的文件
1、比如IDE自动产生的一些文件或者文件夹,git_ignore_file or directory
2、vi .gitignore #添加忽略文件或者文件夹
3、在GitHub上有对应编程语言的gitignore文件配置
Git备份
1、传输协议:本地文件协议、HTTP/HTTPS网络协议、SSH安全协议。
file:// http://或者https:// user@git-sercice:
2、哑协议和智能协议:区别在于智能协议显示传输进度是可见的,而哑协议不可见。智能协议传输速度要快。
3、push and fetch:push就是上传到仓库(包括远程仓库GitHub),fetch就是下载到本地。
4、KaTeX parse error: Expected 'EOF', got '#' at position 18: …t remote -v #̲查看仓库 5、git remote add github_repository
GitHub代码托管平台
0、GitHub官网:https://github.com/
1、GitHub高级搜索:https://github.com/search/advanced/
2、制作简易个人博客:blog in:readme stars:>5000
3、GitHub帮助页面:https://help.github.com/en
Gitee 国内码云
0、Gitee官网:https://gitee.com/
GitLab仓库管理系统
1、GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,
并在此基础上搭建起来的web服务。安装方法是参考GitLab在GitHub上的Wiki页面。
2、GitLab官网:https://about.gitlab.com/