GIT

GIT

    git原理:

        当用户将文件交给git管理时,git将所管理的文件分为三个状态:工作区  缓存区 版本库

        工作区为用户当前对文件所作的任何修改,当用户编辑完成时可将修改放入缓存区中,当用户完成一个阶段的修改工作时,可将所有修改生成一个版本,即将缓存区里的内容放入版本库中。


安装与配置

    安装命令:

        sudo apt-get install git

基本使用

    1.git init 将当前目录交给git管理

    2. 创建一个版本

        1.git add code.txt 将工作区的内容放入缓存区中

        2.git commit -m"版本介绍":指挥提交暂存区中的内容,不会提交工作区的内容

    3.查看日志

        1.git log 查看日志

        2.git log --pretty=oneline 简短的显示日志

4.设置当前访问版本

    1.git reset --hard HEAD^(^有几个尖括号代表前几个版本,也可以用~n ,回到前n个版本)

    2.git reset --hard 版本编号

5.git status 查看工作区状态:工作区更改但未缓存内容及缓存区未提交内容

6.撤销修改

    git checkout -- 文件名 撤销工作区的缓存

    git reset HEAD file 撤销暂存区的修改,重新回到暂存区

对比文件不同

    git diff HEAD -- 文件名 对比修改文件和存储文件的不同

    git diff HEAD HEAD^ -- 文件名 对比同一文件的不同版本 

    git rm 文件名 : 将文件删除

分支操作

    git branch 查看分支

    git branch 分支名  创建分支

    git checkout 分支名  切换到指定分支

    git checkout -b 分支名 创建并切换到指定分支

    git merge 分支名称  合并分支到master: 

        1.默认使用Fast-forward(快速合并),若要禁用: git merge --no-off -m版本说明  分支名 (原理同第三点)

        2.当出现冲突时(两个分支同时修改了同一个文件时)需要手动解决--手动修改冲突文件(git会将修改全部加入到冲突文件中)并再次用add - commit 提交

        3.快速合并无法成功,无冲突时(第一个分支创建文件,第二个分支添加内容),会自动 执行 add-commit ,此时需要输入说明信息。

    git branch -d 分支名 删除分支

    git log --graph --pretty=oneline 查看分支图

    git stash 保存工作区内容

    git stash list 列出保存的工作现场

    git stash pop

修复bug过程

    git stash 保存当前工作现场

    git checkout -b 临时分支名称 

    修复完成后 使用 no-ff 模式保存(若使用ff m模式保存,当删除临时分支后,将无记录)

    删除临时分支

    git stash pop 返回工作现场

GItHUb

    1.创建仓库: create a new repository  -- git init

    2. 添加ssh公钥(头像 - ->setting --> 添加ssh)

        1.编辑家目录下的。gitconfig文件

        2. ssh-keygen -t rsa -C 邮箱

        3. .ssh 目录下的 xx.pub 内容复制到 页面key中

    3.获得项目地址:

       1. clone or download 选择 ssh  复制项目地址

        2.git clone 项目地址

    4.创建自己的分支:git checkout -b 自己的分支名

        在本地提交 add - commit

        将本地项目推送到GitHub上:

        git push origin 分支名称

    5.将本地分支跟踪远程服务器分支:(当本地分支与远程分支不同时,做出提示)

        git branch --set -upstream -to=origin/分支名称: 一旦跟踪后 git status 中会有提示,git push 可直接推送

    6.拉取远程代码 git pull origin 分支名称

你可能感兴趣的:(GIT)