美文网首页
git 使用整理

git 使用整理

作者: 桃逸 | 来源:发表于2016-03-27 23:37 被阅读103次

    1. git 原理

    git与其他版本控制器不同,不保存文件前后变化的差异数据,只保存每次变化的文件的快照,生成指纹索引并保存在当前目录下。它能够用一条命令就快速的创建一个本地分支。
    git是分布式版本控制系统,没有中心服务器,每台电脑就相当于一个完整的版本库,一般工作不需要联网,因为版本都保存在自己的电脑上,并且当前项目的所有历史更新都会存储在本地磁盘上,保证了高效的数据处理。
    每个git工作目录的根目录下都只有一个.git目录,它是用来保存元数据和对象数据库的地方,所以每一个项目目录都是一个带有历史记录和版本信息的仓库,不依赖与网络与中央服务器
    对于任何一个文件,git内部只有三种状态:已修改,已暂存,已提交;其内部的工作方式如下图所示:

    git add 相当于添加到暂缓区、git commit相当于添加到本地仓库,git push相当于推送到远程仓库


    2. git 客户端基本使用

    1)上传密钥
    git内部服务器一般使用ssh协议,客户端需要生成一个公钥上传到git服务器方可进行上传操作
    密钥生成命令行:ssh-keygen -t rsa
    默认生成的密钥在home目录的.ssh目录下,密钥文件默认名称为id_rsa和id_rsa.pub,前者是私钥,后者是公钥。然后把你的公钥发给Git仓库管理员,然后你就可以通过ssh协议来访问服务器端,期间程序会自动进行密钥对匹配,如果你设了访问密码,你可能需要输入密码。

    2) 基本命令使用说明
    --> git remote -v
    列出远程服务地址
    --> git remote add my_origin git@server/some.git
    添加一个远程服务地址
    --> git config --global  user.name "yourname"
    git config--global  user.email "youremail@"
    配置git仓库的用户名及邮箱地址,global表示应用于所有git仓库,也可单独为某个仓库设置用户信息
    --> git clone git@project/aaa.git
    从远程仓库获取一个项目
    --> git status
    查看工作目录文件状态
    --> git pull origin master:
    更新本地仓库代码到origin服务器的master分支上
    --> git push origin master
    提交本地仓库更新到origin服务器的master分支上
    --> git log 查看所有log详细信息
    --> git reflog 查看索引log信息
    --> git ls-files 列出所有git文件
    git ls-files -d 列出被本地删除的git文件
    --> git checkout -- filename
    从暂缓区域恢复文件,并撤销内容修改
    --> git reset filename
    重置为本地仓库内容
    git reset HEAD filename
    充值为master仓库内容
    git reset --hard  hash_version
    恢复到某个版本
    --> git add filename
    添加文件到暂存区域
    --> git commit -m"comment"
    提交文件到本地仓库
    git commit -a -m"comment"
    添加文件到暂缓区并提交到本地仓库

    //工作现场命令
    --> git stash     
    隐藏当前工作现场
    git stash list   
    列出所有隐藏工作现场
    git stash pop 
    恢复工作现场

    分支应该是一个稳定的用来发布新版本的,一般情况在一个新的分支上干活,完成之后,再合并到主分支上来
    //分支相关操作
    --> git branch -a       
    显示所有分支
    git branch name   
    创建分支
    git checkout branch_name 
    切换到一个分支
    git branch -d branch_name 
    删除一个分支
    --> git merge branch_name -m"comment"
    merge一个分支的内容到当前分支,如果有冲突手动修改再提交

    git相关命令与存储阶段关系图: 

    相关命令与工作阶段关系图 git reset 说明

    3. 使用注意事项

    1)第一次从服务器上复制一个仓库,可能会比较慢,因为git要把所有的历史记录和版本信息全部复制下来;
    2)git默认是要只读的,要上传文件需要生成密钥保存到服务器端;
    3)每次提交代码,需要add到暂缓区再commit;
    4)HEAD代表的就是master主分支;

    4.参考学习文档

    http://git-scm.com/docs
    http://git-scm.com/book/zh
    http://blog.jobbole.com/78960/

    5. 问题:

    1. 如何拉取某个分支的某个提交到当前分支:使用 cherry-pick
    https://segmentfault.com/q/1010000004969339?_ea=744739


    PS:此文根据参考文章的内容及图片说明进行整理,相关操作都进行了实际测试

    相关文章

      网友评论

          本文标题:git 使用整理

          本文链接:https://www.haomeiwen.com/subject/rbkbkttx.html