码迷,mamicode.com
首页 > 其他好文 > 详细

git与github

时间:2018-11-16 20:48:11      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:esc   代码   全局   git init   隐藏   开发项目   51cto   地方   you   

1、git:一个免费的并且开源的分布式版本控制系统
版本控制:保留文件中修改的历史记录,可以方便的撤销||恢复之前对文件的操作修改。
版本控制带来的好处:
a.不小心删除文件,可以通过记录找回
b.产品经理反反复复让你修改的时候,可以通过版本控制轻松反复
c.清楚了解自己最近处理过哪些部分
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置
分布式版本控制:
单人开发项目的时候,我们可能为了方便,公司一台,家里一台,这时候我要使用同一个仓库进行记录。
我们可以选择使用U盘、网盘等存储设备进行拷贝。
但是一旦项目庞大,我们就这样的方式就很麻烦了,而且极有可能产生各种冲突问题。
分布式和集成式的对比:
集成式:
直接连通中央仓库,由中央仓库存储操作记录及项目代码,比如SVN
需要连接中央仓库、需要网络
记录保存在中央仓库,一旦中央仓库内的记录丢失,没有备份
分布式:
在每个人的电脑上都有一个.git本地仓库,操作记录保存在本地,如GIT
可无网络办公,等有网络再推送远程仓库
通过对比我们可以看出分布式版本控制,对于工作环境要求限制更少,对资料的保护性更好,不容易丢 失。所以越来越多的人抛弃SVN,走上了Git的道路
Github就充当了我们说的中央仓库。
当然在这里我们需要的只是中央仓库,这个仓库也可以Coding 、gitlab、Bitbucket 等等。

2、github:一个专门托管代码并且实现版本控制的软件,git比github早出现了3年,为开源项目免费提供Git存储

3、git的入门命令,使用Git Bash操作命令行
(1)、git init:初始化本地仓库;,通过git init命令把这个目录变成Git可以管理的仓库
通过这个命令,可以创建一个本地.git仓库,.git文件(默认是隐藏文件)
.开头的文件是隐藏文件,所以需要设置让其出现
touch a.txt //创建a.txt文件
echo.>b.txt //创建b.txt文件
git status:查看当前仓库所在目录的文件状态
技术分享图片
on branch master:在哪个分支上
no commits yet:还没有提交过
untracked files:当前的这个文件是没有被追踪的,git当它是不存在的,通过命令:
(2)、git add a.txt:来将这个文件提交给git,告诉仓库,这是我需要你管理的东西。add是添加文件下所有的文件
通过这样的方式,我们可以把文件/文件夹托管给git
技术分享图片
(3)、git commit
把文件/文件夹托管给仓库后,我们不能像编辑器一样,什么都让仓库进行记录,所以在这里,
我们采用主动提交的方式,去提交我们希望Git仓库记录的操作。
git commit
如果你是第一次进行提交,你会发现提交失败
因为Git除了需要你主动提交以外,还需要记录当前是谁提交的
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
在全局下设置用户email和name,只需要设置一次,后期提交的时候,会自动读取配置信息
技术分享图片
进入了vim编辑器,出现这种情况是因为,需要在commit的时候附带一个信息,描述你提交是做了什么的描述文字。按住i进入文字编辑插入模式 => 在最上面输入本地提交的描述信息
技术分享图片
然后按下esc退出编辑插入模式 => 按下ZZ(大写)保存退出。
(4)、git log:查看已经提交的文件信息,所有批次的提交信息
通过git log 哈希值:可以只查看某一次的提交信息
以上操作都是操作本地仓库,untracked files不用管它
每次操作:
首先git status,查看文件状态,看看哪些文件修改了
然后git add,将修改文件提交到暂存区,
git add . 将本地仓库全部文件提交到暂存区
然后 git cimmit -m 描述文字,提交到本地仓库
以上操作步骤,缺一不可。
不过可以简写命令行:git commit -am ‘描述文字‘(只有在文件是已经暂存的情况下才可以使用简写命令操作,untracked files是不可以直接使用简写命令行的,需要先add,然后commit,分开来)
(5)、git rm ‘文件名’:删除文件
git rm a.txt
git commit -m 删除a文件
☆如果文件在暂存区,也就是git add .,但是还没有git commit,那么是不允许删除该文件的,如果确实要删除,那么 :
git rm -f c.txt //强制删除
git commit -m 删除c文件
☆如果想把文件从git仓库删除,但是保留本地工作目录中的文件,也就是该文件从git仓库的文件变成了untracked files文件
git rm --cache a.txt
git commit -m 删除a文件
要想再次提交该文件到git仓库,先git add .,然后git commit -m 提交a文件
(6)、移动文件
新建文件夹:mkdir reci //创建了一个文件夹
git mv a.txt reci/a.txt //将a文件移动到reci文件夹下面
git add .
git commit -m 移动a文件到reci文件夹下
(7)、git diff:查看文件修改了哪些地方
只在文件已经被修改,但是还未add的情况下,可以查看,如果已经add就不可以查看修改的情况了
(8)、git reset:返回文件到之前的版本
git reset --hard HEAD^ //返回上一个版本
git reset --hard HEAD^^ //返回上上一个版本
git reset --hard HEAD~·100 //返回往上100个版本
回退到未来的版本
git reset --hard d93ccfb4a9f6a5971c4a2481f927202a4cf66d49 //对应版本的哈希值
(9)、git reflog用来记录你的每一次命令,找到对应修改的commit id
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
(10)、创建SSH Key
C:\Users\xiaoxiao.ssh 这就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

git与github

标签:esc   代码   全局   git init   隐藏   开发项目   51cto   地方   you   

原文地址:http://blog.51cto.com/9161018/2317628

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!