深度学习-推荐系统-CV-NLP人工智能/模式识别/机器学习精华专题玩转大数据

Git入门操作

2019-12-18  本文已影响0人  皮皮大

本文中介绍了Git的部分原理和操作

Git工作原理

原理图

Git是目前世界上最先进的分布式版本控制系统。工作原理见下图:

image

工作区、暂存区、版本库

工作区:自己电脑上本机看到的目录,以及以后需要新建的目录文件等都是属于工作区的范畴

暂存区:使用 git add 把文件添加进去,实际上就是把文件添加到暂存区;使用git commit提交更改,就是把暂存区的所有内容提交到当前分支上

版本库:工作区目录下有一个隐藏目录.git,不是属于工作区的,这个是版本库。版本库里面存了很多的东西:stage(暂存区)、第一个分支master、指向master分支的第一个指针HEAD

Git基本命令

git init :初始化,会多出一个.git隐藏目录

git status :查看状态

git add <filename> :添加一个文件

git add .:添加全部

git commit -m "第一次提交" :提交到本地仓库中

git diff <filename>:查看某个文件修改内容

git clone git@github.com:pidada/charts.git :克隆某个仓库,后面是仓库地址

image

版本回退

查看提交日志

git log:查看提交版本号(从近到远的显示日志)

git log —pretty=oneline:显示少许内容(版本号相关)

回退版本

git reset —hard HEAD^:上个版本

git reset —hard HEAD^^:上上个版本

git reset —hard HEAD~100:回退到前100个版本号

回退指定版本

git reflog:获取版本号

git reset —hard 6fcfc89:回退到指定的版本(6fcfc89是版本号)

撤销和修改

撤销

除了使用上面的回退版本方法之外,还可以使用下面的方法:

git checkout -- <filename>

image

上述命令指的是将文件在工作区中的修改全部撤销,分为两种情况:

image

删除

如果在版本库中添加了文件,然后提交

git add test.txt
git commit -m "add test"
rm test.txt    # 直接删除文件
git status  # 查看是否删除

git checkout -- test.txt  # 恢复文件

远程仓库

添加公钥

本地Git仓库和远程的GitHub仓库之间是通过SSH加密进行传输进行连接的。

  1. 创建SSH key,查看本地的.ssh目录(隐藏目录)

    • id_rsa:私钥

    • id_rsa.pub:公钥(需要添加到github的SSH keys页面中)

  2. 添加公钥

    image
image image

创建仓库

关于新建github账号和GitHub仓库的过程,看Git使用-10分钟快速入门

几条重要的命令

git remote add origin https://github.com/tugenhua0707/testgit.git   
git push -u origin master  #  从本地添加到远程仓库中,第一次需要加上 -u 参数
git push origin master  #  后面的提交不需要

分支

创建、查看和切换分支

git branch test  # 创建分支  
git branch  # 查看分支  当前分支加上星号
git checkout test  # 切换分支

git checkout -b test  # 创建并切换分支,相当于是下面两句
# git branch dev
# git checkout dev

# 如果在test分支上修改的内容,想合并到分支master上面
git merge test  # 合并指定分支到当前分支上(需要在master分支上执行)

git branch -d test  # 删除分支
image

分支管理策略

通常合并分支时,git一般使用Fast forward模式,在这种模式下,删除分支后,会丢掉分支信息,使用带参数--no-ff来禁用Fast forward模式

git merge --no-ff -m "merge with no-ff" test  # 合并分支,并且禁用fast forward模式

笔记:首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面操作。一般情况下在新建的test分支上操作,等到test分支代码稳定后,可以合并到主分支master上来。

上一篇下一篇

猜你喜欢

热点阅读