开篇
git
简易的命令行入门教程:
Git 全局设置:
git config --global user.name "osvue"
git config --global user.email "hzqq110@163.com"
创建 git 仓库:
mkdir wind_weather
cd wind_weather
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/osvue/wind_weather.git
git push -u origin "master"
已有仓库?
cd existing_git_repo
git remote add origin https://gitee.com/osvue/wind_weather.git
git push -u origin "master"
Git 状态模型
在状态模型中进行了更详细的说明。
1. 工作区(workspace)
当前工作空间,即当前能在本地文件夹下面可以看到的文件结构。初始化工作空间或者工作空间 clean
的时候,文件内容和暂存区(index)是一致的,随着修改,工作区文件没有执行 git add
到暂存区的时候,工作区域将和暂存区不一致。
# clean 状态
$ git status
#On branch master
#nothing to commit, working tree clean
2. 暂存区(index)
老版本的概念也叫 Cache 区,就是文件暂时存放的地方,所有暂时存放在暂存区中的文件将随着 git commit
一起提交到本地仓库(local repository),此时本地仓库的文件将会被暂存区所取代。
3. 本地仓库(local repository)
git 是分布式版本控制系统,和其他版本控制系统不同的是他可以完全去中心化操作,你可以不用和远程仓库(remote repository)进行通信,在本地即可进行全部离线操作,包括 log、history、commit、diff 等。
能实现以上功能是由于 git 有一个几乎和远程一样的本地仓库。
所以离线操作都可以本地完成,等需要的时候再和远程仓库进行交互。
4. 远程仓库(remote repository)
远程中心仓库,可使得仓库分享给其他人。结构大体和本地仓库一样。
Git 常用命令
Git 的操作指令非常多,此处仅选一些简单的日常操作。
查看帮助
所有命令行最重要的当然是查看帮助文档:
git help
结果:
用法:git [--version] [--help] [-C <路径>] [-c <名称>=<取值>]
[--exec-path[=<路径>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<路径>] [--work-tree=<路径>] [--namespace=<名称>]
<命令> [<参数>]
这些是各种场合常见的 Git 命令:
开始一个工作区(参见:git help tutorial)
clone 克隆仓库到一个新目录
init 创建一个空的 Git 仓库或重新初始化一个已存在的仓库
在当前变更上工作(参见:git help everyday)
add 添加文件内容至索引
mv 移动或重命名一个文件、目录或符号链接
reset 重置当前 HEAD 到指定状态
rm 从工作区和索引中删除文件
检查历史和状态(参见:git help revisions)
bisect 通过二分查找定位引入 bug 的提交
grep 输出和模式匹配的行
log 显示提交日志
show 显示各种类型的对象
status 显示工作区状态
扩展、标记和调校您的历史记录
branch 列出、创建或删除分支
checkout 切换分支或恢复工作区文件
commit 记录变更到仓库
diff 显示提交之间、提交和工作区之间等的差异
merge 合并两个或更多开发历史
rebase 在另一个分支上重新应用提交
tag 创建、列出、删除或校验一个 GPG 签名的标签对象
协同(参见:git help workflows)
fetch 从另外一个仓库下载对象和引用
pull 获取并整合另外的仓库或一个本地分支
push 更新远程引用和相关的对象
命令 'git help -a' 和 'git help -g' 显示可用的子命令和一些概念帮助。
查看 'git help <命令>' 或 'git help <概念>' 以获取给定子命令或概念的
帮助。
简单使用
# 检查文件是否有更新
git status
# 将新增的文件进行跟踪
git add .
# 提交本次修改内容(请尽量详细),方便日后修改 bug 时快速定位
# 此处 commit 仅为示例,请修改为你项目的提交信息
git commit -m"docs(git): 新增 git 简单使用"
# 提交到仓库
git push
Git 飞行规则
Git飞行规则(Flight Rules) 可以用来指导一些常见的问题。
为 Git 添加代理
clone 大项目时总是乏力,下载速度极慢,这时就需要为其设置代理了。
全局代理
该项可参考 alias 部分内容。
gfw
Git 代理
在 Git 官网可获得提示 http.proxy
,虽然在其余地方搜索还得到提示 https.proxy
,但在官网并没有搜到对应内容,怀疑是误传。
# 设置代理
git config --global http.proxy 'socks5://127.0.0.1:1080'
# 取消代理
git config --global --unset http.proxy
# 更好的形式当然是设置为 alias
alias proxygit="git config --global http.proxy socks5://127.0.0.1:1080"
alias uproxygit="git config --global --unset http.proxy"
SourceTree
gitee 官方初始化
- Git 全局设置:
git config --global user.name "osvue"
git config --global user.email "hzqq110@163.com"
- 创建 git 仓库:
mkdir config
cd config
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin git@gitee.com:osvue/config.git
git push -u origin master
- 已有仓库?
cd existing_git_repo
git remote add origin git@gitee.com:osvue/config.git
git push -u origin master
简易的命令行入门教程:
Git 全局设置:
git config --global user.name "osvue"
git config --global user.email "hzqq110@163.com"
创建 git 仓库:
mkdir blog
cd blog
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin git@gitee.com:osvue/blog.git
git push -u origin master
已有仓库?
cd existing_git_repo
git remote add origin git@gitee.com:osvue/blog.git
git push -u origin master
一些小tip
depth
git clone --depth=1
用 git clone --depth=1 的好处是限制 clone 的深度,不会下载 Git 协作的历史记录,这样可以大大加快克隆的速度
depth用于指定克隆深度,为1即表示只克隆最近一次commit
适合用 git clone --depth=1 的场景:你只是想clone最新版本来使用或学习,而不是参与整个项目的开发工作
git查看远程仓库地址
git remote -v
Gitee 全局设置:
git config --global user.name "osvue"
git config --global user.email "hzqq110@163.com"
# 创建 git 仓库:
mkdir cesium-d3kit
cd cesium-d3kit
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/osvue/cesium-d3kit.git
git push -u origin "master"
# 已有仓库?
cd existing_git_repo
git remote add origin https://gitee.com/osvue/cesium-d3kit.git
git push -u origin "master"