git 常用指令 -
今天开始学习git
1. 什么是git
- git - 开源的分布式版本控制器
- Linux Benedict Torvalds
2. 版本控制工具
SVN: 集中式版本控制器 --- 代码库放在服务器上集中管理 -- 必须实时联网
Git: 分布式版本控制器 --- 服务端和客户端都有代码库 -- 速度快 --- 不用实时联网
3. git工作流程
- clone --- CheckOut
- commit -- 将代码提交到本地仓库
- push --- 将本地仓库推送到服务器
- pull --- 更新本地仓库
4.
- 新建一个"本地仓库" $ git init
- 配置仓库
- 告诉git你是谁 -- $ git config user.name lnj
- 告诉git怎么联系你 -- $git config user.email lnj@itcast.cn
- 上面配置为 一次性配置方式, 配置文件在管理文件夹下
- 下面的方式为 一劳永逸的方式
-
$ git config --global user.name jiaguanglei
-
$ git config --global user.email 2318336342@qq.com
- 点击前往 -- 个人 会看到一个.gitconfig 文件(隐藏)
5. 学习git指令
git 学习指令和SVN类似, git是通过一个不可编辑的指南,-- $q 退出 $空格 - 下一页 $ctrl + b -- 上一页 $/+"搜索文字"
$git help
- $git help clone --
- $ touch main.c -- 创建文件
- $ open main.c -- 打开文件
- $ git status --- 查看文件状态
- $ git add main.c --- 添加文件到"暂存区"
-
# 将当前文件夹下的所有新建或修改的文件一次性添加到代码库
$ git add .
-
- $ git commit main.c --- 更新本地代码库
- [注意] 如果没有在commit后面加上 -m, 说明修改了什么, 会自动进入一个vim界面, 要求我们输入修改信息;
- 按键盘上的 i \ o, 进入输入状态 -- 直接输入 修改内容
- 修改完以后, 按esc, 输入":" + wq 退出
- 所以以后终端提交的时候, 最好加上 -m
- $ git commit main.c -m "添加了返回值模块"
[注意] 未添加的颜色: 红色;-------工作区 -- manager 当前能看到的文件夹
add 添加到暂存区的颜色: 绿色 --- 暂存区 -- commit --- 本地仓库repository
[注意]git默认是没有简写指令, 起别名指令 -- $ git config alias.st status $ git config alias.cm "commit -m" $ git config alias.st statusclear -- 清除别名
6. $ git log main.c --- 打印修改记录
git的版本号 是40位的哈希值
svn 是一个整数
$ git reflog main.c -- 查看所有修改信息
-
- # 查看所有版本库日志 --- $ git log
- # 查看指定文件的版本库日志 --- $ git log 文件名
- # 配置带颜色的log别名 --- $ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
7. 版本恢复
- 已经提交
$ git reset --hard HEAD^ ---- 强制恢复到 上一个版本
$ git reset --hard HEAD~(3) --- # 回到之前第3个修订版本
$ git reset --hard 版本号前七位 --- 哈希值前七位
$ git reset e695b67 --- # 回到指定版本号的版本
$ git reflog --- # 查看分支引用记录
- 未提交
$ git checkout main.c
$ git reset --hard HEAD ----- # 回到当前版本,放弃所有没有提交的修改
8. 查看修改文件
- $ git diff --- 查看修改内容 绿色-新增 红色-删除
6. 远程仓库配置
svn 需要一个单独的服务器
git 文件, U盘, 云盘, github, OSChina
- 新建git的远程仓库 --- 这个仓库仅仅用于管理代码,不参与开发.
-
- $ git init --bare
2. 项目经理初始化项目
2.1 先初始化一份空的仓库到本地
$ git clone 代码库地址(也可以是本地路径)
2.2 忽略不需要加入版本控制器的文件
.gitignore
[注意]配置gitignore, 只需要在github上搜索, .gitignore 然后复制代码即可;
配置gitignore一定要在和 .git隐藏文件同一级的目录下进行
2.3 生成.gitignore 文件以后, 还需要将gitignore添加到代码库中,
-
- git add .gitignore
- git commit .gitignore -m "配置忽略文件"
2.4 新建项目
-
- commit - 将代码提交到本地
- git中默认会创建一个分支, origin/master -- 相当于 SVN 中的=trunk
- push -- 将代码提交到远程仓库
总结:
1> git 每次修改都要要add
2> git 每个开发者本地都有一个仓库
3> git 每次提交, 都是先提交到本地仓库, 再提交到远程仓库
7. 新人服务器的搭建
1> 新建一个新人服务器
2> 初始化仓库 ---- $ git init --bare
3> 添加一个新的远程仓库, sourceControl -- config 仓库 --- add --- done
4> 经理将新的代码 push 到新的服务器
8. git 分支管理
- $ git tag -a v1.0 -m "Version 1.0" ---- 在本地代码库 给项目打标签 [仅仅是本地标签, 和服务器没有关系]
- $ git tag ----- 查看标签
- $ git push origin v1.0 ----- 将标签推送到远程仓库中
开启一个分支
-
$ git checkout -b new_branch_name -- 新建一个分支
- $ git tag -a v1.0 -m "Version 1.1" --- 本地保存修复
- $ git push origin v1.1 --- 更新远程仓库
02. 分支管理 - Tag
================================================================================
# 查看当前标签
$ git tag
# 在本地代码库给项目打上一个标签
$ git tag -a v1.0 -m 'Version 1.0'
# 将标签添推送到远程代码库中
$ git push origin v1.0
# 使用tag,就能够将项目快速切换到某一个中间状态,例如产品开发线上的某一个稳定版本
# 签出v1.0标签
$ git checkout v1.0
# 从签出状态创建v1.0bugfix分支
$ git checkout -b bugfix1.0
# 查看远程分支
$ git branch -r
# 删除远程分支
$ git branch -r -d origin/bugfix1.0