git 使用
Posted sky-ai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git 使用相关的知识,希望对你有一定的参考价值。
git 的使用
代码协同管理工具
1. 防止代码丢失,做代码备份
2. 做代码的版本管理,创建多个版本或者节点,在多版本之间切换
3. 可以将代码在多人之间简单的传输共享
4. 可以方便多人协同开发,开辟各自分支和分支管理
什么是git
git是一个开源的分布式版本控制系统,可以用于高效的管理大小项 目。
分布式 : 每个节点关系平等,都保存完整代码,节点之间相互推 送或者下载代码。工作方式多样
集中式 : 有明确的中央服务器统一管理代码,每个节点将代码上 传中央服务器或者从中央服务器下载。逻辑简单
git特点
* git可以管理各种文件,特别是代码项目,多在*nix系统中使用
* 是开源的系统,是唯一可以操作github的管理工具
* git是分布式管理,不同于集中式,这也是和svn最大的差别
* git 可以脱网操作,传输速度更快
* git的安全性很强,有全球唯一的commit版本号
* git的分支管理很强大,可以方便多人协同工作
git安装
sudo apt-get install git
git 基本配置
git config
配置级别
1. 系统中所有的用户均使用的配置
命令 : git config --system
配置文件 : /etc/gitconfig
e.g. 配置git用户
sudo git config --system user.name Tedu
2. 当前用户的所有项目均使用的配置
命令: git config --global
配置文件 : ~/.gitconfig
e.g. 配置用户邮箱
git config --global user.email [email protected]
3. 只在当前项目中使用的配置
命令: git config (命令要在git项目文件夹中执行)
配置文件: project/.git/config
e.g. 配置编译器
git config core.editor vscode
4. 查看当前配置
git config --list
git 基本概念
工作区 : 通过自己的主机操作的git目录
暂存区 : 用来记录你工作的行为,作为暂时保存
本地仓库 : 本地用来备份同步工作区内容的区域
远程仓库 : 其他主机的git仓库
git的基本操作命令
初始化仓库
git init
* 初始化仓库后产生.git目录为git的管理目录,初始化仓库的 目录中的内容即可使用git管理
查看工作分支状态
git status
* 默认工作分支为master,可以通过创建新的分支切换
文件提交到暂存区
git add [file]
* 可以一次提交多个内容,中间用空格隔开
* 提交的内容可以使文件也可以是目录
* 如果想将当前目录下所有内容都提交也可以使用 * 表示
删除暂存区的记录
git rm --cached [file] (如果是目录加 -r)
将暂存区记录的修改内容同步到本地仓库
git commit -m "some message"
* -m 为添加的附加信息
* 当工作区和本地仓库内容一致是git status提示工作区干净
查看提交日志
git log
git log --pretty=oneline
工作区操作
查看工作区文件和本地仓库的差异
git diff [file]
放弃工作区文件修改
git checkout -- [file]
恢复本地仓库文件到工作区
git checkout [file]
文件的移动和删除
删除工作区文件并提交到暂存记录
git rm [file]
移动工作区文件并提交到暂存记录
git mv file dir
* rm mv 的用法和shell命令rm mv相同,操作后直接commit同步 到本地仓库
版本控制命令
回到之前版本
git reset --hard HEAD^
* HEAD 后几个^表示回到之前的几个版本
通过commit_id回到指定的版本
git reset --hard commit_id
查看操作日志
git reflog
* 获取到操作记录后可以根据commit_id去往较新的版本
标签管理
什么是标签 : 即在当前工作位置添加快照,保存项目的版本信息 ,一般用于项目版本的迭代
创建标签
git tag v1.0
* 默认会在最新的commit_id处打标签
查看标签
git tag 查看所有标签
git show V2.0 查看某个标签的具体信息
在某个指定commig_id处打标签
git tag v0.9 [commit_id]
回到某个标签的版本
git reset --hard v0.9
删除标签
git tag -d v2.0
保存临时工作区
创建临时工作区
git stash
* 将工作区修改内容暂时封存,恢复到最近一个“干净”状态
查看保存的工作区
git stash list
应用某个工作区
git stash apply [email protected]{1}
* 新的工作区总是为[email protected]{0},老的工作区会向下排列
应用上一个工作区,并删除之
git stash pop
删除工作区
git stash drop [email protected]{0} 删除某一个
git stash clear 删除所有
前情回顾
1. match 对象 : match finditer 等函数生成
group()
2. flags re.I re.S re.M re.X
3. git
git的特点
git的安装
git的配置 git config
git基本命令 : git init
git add
git commit
git status
git log
git mv
git rm
git diff
git checkout
git版本控制 : git reset --hard HEAD^
commit_id
git reflog
git 标签管理 : git tag v1.0 -m ‘xxxxx‘
git show v1.0
git reset --hard v1.0
git tag -d v1.0
git 的临时工作区: git stash
git stash list
git stash apply [email protected]{1}
git stash drop [email protected]{0}
clear
*********************************************************
分支管理
什么是分支?
分支即每个人在获取原有分支(master)代码的基础上,作为 自己的工作环境,单独开发,不会影响其他分支操作。开发完 成后再同意合并到主线分支。
好处 : 安全,不影响其他人工作,自己控制进度
问题 : 冲突,降低耦合度可以有效地减少冲突
查看当前分支
git branch
前面带 * 的表示当前正在工作的分支
创建分支
git branch [branch_name]
* 创建分支之前尽量保证原分支是干净的,避免合并时产生冲突
切换工作分支
git checkout [branch]
创建并切换到新的分支
git checkout -b [branch_name]
合并分支
git merge [branch]
删除分支
git branch -d [branch]
强制删除未合并分支
git branch -D [branch]
远程仓库
在远程主机上的仓库。git时分布式的,每一台主机上的git结构基 本相同,只是把其他主机上的git仓库叫做远程仓库
创建共享仓库 :
1. 创建目录
mkdir gitrepo
2. 设置仓库文件夹的属主
chown tarena:tarena gitrepo
3. 创建共享仓库
git init --bare aid.git
4. 设置git项目文件夹数组
chown -R tarena:tarena aid.git
添加远程仓库
git remote add origin [email protected]:/home/tarena/gitrepo/aid.git
向远程主机推送分支
git push -u origin master
从远程主机获取项目
git clone [email protected]:/home/tarena/gitrepo/aid.git
将代码同步到远程主机
git push
将远程仓库内容拉取到本地
git pull
git fetch (获取远程分支到本地,但是暂时不合并)
删除已有的远程主机
git remote rm origin
github
开源的项目社区网站,提供丰富的开源项目,也为用户提供项目管 理服务
git是github唯一指定的代码管理工具
网址 : https://github.com
创建新的仓库: 右上角 + --》new repository -->填写信息
操作github :
1. git remote 连接远程仓库
2. 通过 git push 上传代码
* github就是一个远程仓库
以上是关于git 使用的主要内容,如果未能解决你的问题,请参考以下文章