Git学习
来源:互联网 发布:淘宝店铺如何上传图片 编辑:程序博客网 时间:2024/06/06 04:18
Git学习
1. git与svn的异同:
同:都是用来控制代码版本的工具
异:
svn是集中式版本控制系统,版本库是在中央服务器,但是我们的代码却是写在自己的电脑上,因此每次写完代码后都需要将自己的代码上传到中央仓库,而别人也需要从这个中央仓库获取最新的版本,然后写完自己的代码后再推送到中央仓库,上传或者下载过程都需要联网,速度慢
git是分布式版本控制系统, 每个人的电脑都是一个版本库,没有中央服务器,写完自己的代码互相推送对方即可以看到你修改或者是提交的代码,不需要联网,速度快
2.git常用命令解析
2.1 git config –global
Git config –global user.name “jingjing”
Git config –global user.email “666666@qq.com”
因为git是分布式版本控制系统,每个人的电脑都是一个版本库,因此需要定义用户名和邮箱作为版本库的唯一标识。
2.2 git之创建版本库 repository
cd命令进入你指定想创建仓库的目录(当然你还可以使用mkdir命令的形式创建目录 如 mkdir gittest),然后使用命令:git init 这样就可以生成一个git仓库了,此时目录下面会生成一个.git文件夹,用于跟踪和管理版本的。
2.3 git之文件的添加 提交以及状态查看
现在你改了某个文件(注意所有的版本控制系统都只能跟踪文本文件的改动),想把它推送到仓库里面,使用如下命令:
Git add text.txt 添加文件到暂存区
Git commit –m ‘提交text.txt文件’ 将暂存区的文件提交到仓库里面-m表示提交这个文件的时备注,这样别人看到这个文件的备注就能知道你做了什么操作了 每次对文件进行修改后都可以用如上操作提交更新文件
Git status 查看是否还有未提交的文件,如果还有未提交的文件(即你修改了内容而没有提交到仓库或者是新建的文件),那么我们可以使用如下命令查看我们的文件有什么不一样:
Git diff text.txt 这个命令可以展示仓库的文件和我们修改的文件的不同之处。
Cat text.txt 这个命令用来帮助我们展示文件内容(此处注意是工作区的文件内容哦 而不是暂存区的)
如果我们想查看提交的日志(历史记录),我们可以通过如下命令查看:
Git log 这样我们就能查看我们提交文件的历史记录了
2.4 git之版本回退
都说了是版本控制,如果我们因为需求错误而想回退到之前的版本,这时候我们就可以利用git命令很容易回退到之前的版本:
Git reset --hard HEAD^ 回退到上一个版本
Git reset --hard HEAD^^ 回退到上上个版本
Git reset --hard HEAD^^^ 回退到上上上个版本
…以此类推
使用如上的方法可以回退版本,但当我们累计的版本很多时,上面的操作显然是不行的,我们可以指定回退版本的版本号,这样就很容易的回退版本了,那么如何查看版本号呢:
Git reflog 该命令可以查看所有历史记录的版本号,第一列就是我们的想要的版本号,当然还有我们提交时候的备注,然后找到我们想回退的版本号,使用如下命令:
git reset --hard 版本号 这样我们就能回退到想要的版本号了
3. 暂存区与工作区的区别
使用git add test.txt 是将文件添加到暂存区中,即.git文件的stage(暂存区)里面,而使用git commit 命令是将暂存区的文件提交到当前分支中(当前master git会为我们自动创建第一个master分支),工作区就是除去.git的所有文件或目录
4. 撤销修改和删除文件操作
Git checkout -- test.txt 撤销对工作区的修改 注意是撤销对工作区的修改哦 如果我们将工作区中的文件add到暂存区中,那么我们就无法撤销了
rm test.txt 删除已经提交的文件 注意是删除工作区的文件哦(当然其实我们可以手动删除) 版本库里面肯定是还存在的 如果想彻底删除的话 我们再提交一次就可以了
5. 远程仓库
1.创建远程仓库并关联本地仓库
首先,你需要有一个github账号,没有的话自己去注册。
由于本地的git仓库和远程仓库之间的传输是通过ssh加密的,所以我们需要创建ssh key,使用如下命令:ssh-keygen -t rsa –C “youremail@qq.com “ (我的默认是放在了C/USER/Administrator/.ssh目录下),然后就生成了id_rsa和id_rsa.pub两个文件,一个是私钥,一个是公钥, 私钥要保管好,只能自己知道,公钥可以给任何人看,现在我们需要在github账号上添加我们的公钥,settings->ssh keys->New SSH key,将id_rsa.pub的内容复制粘贴过去即能添加。
好了,现在我们该把本地仓库同步到远程仓库了,在此之前如何将本地仓库添加到远程仓库呢
登录github,点击 + new rep 填入相应的信息(注意此处只能创建公有的仓库,私有的要钱!)
之后就是关联本地仓库,并将master分支中的内容推送到关联的远程仓库中去:
Git remote addorigin https://github.com/aiyayablog/greenfarm.git //关联仓库
Git push –u originmaster //将master分支中的内容推送到关联的远程仓库中
由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。推送成功后,可以立刻在github页面中看到远程库的内容已经和本地一模一样了
这样远程仓库就与本地仓库关联起来了,从现在起,只要本地做了提交,就可以通过如下命令将本地仓库的内容推送到远程仓库:
Git push originmaster
2.克隆远程仓库到本地
使用如下命令即能将远程仓库克隆到本地仓库:
Git clone github仓库地址
3.创建与合并分支
此前我们默认生成了一个master分支,也叫做主分支,那么我们如何创建或者切换到其他的分支呢?使用如下命令:
Git checkout –b name 创建并切换分支
Git branch 查看分支
Git branch name 创建分支
Git checkout 切换分支
Git branch –d name 删除分支
Git mergename 合并分支到当前分支
Git基本常用命令:
mkdir: XX (创建一个空目录 XX指目录名)
pwd: 显示当前目录的路径。
git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
git add XX 把xx文件添加到暂存区去。
git commit –m “XX” 提交文件 –m 后面的是注释。
git status 查看仓库状态
git diff XX 查看XX文件修改了那些内容
git log 查看历史记录
git reset –hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一个版本
(如果想回退到100个版本,使用git reset –hard HEAD~100 )
cat XX 查看XX文件内容
git reflog 查看历史记录的版本号id
git checkout — XX 把XX文件在工作区的修改全部撤销。
git rm XX 删除XX文件
git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库
git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
git clone https://github.com/tugenhua0707/testgit 从远程库中克隆
git checkout –b dev 创建dev分支 并切换到dev分支上
git branch 查看当前所有的分支
git checkout master 切换回master分支
git merge dev 在当前的分支上合并dev分支
git branch –d dev 删除dev分支
git branch name 创建分支
git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list 查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop 删除文件
git stash pop 恢复文件的同时 也删除文件
git remote 查看远程库的信息
git remote –v 查看远程库的详细信息
git push origin master Git会把master分支推送到远程库对应的远程分支上
- 【git】git学习笔记
- 【Git】Git学习手册
- Git学习 -- Git 安装
- Git学习-GIT安装
- 【Git学习】git常用命令
- git学习:git常用命令
- git 学习
- git 学习
- Git学习
- Git 学习
- GIT学习。
- git学习
- Git 学习
- git 学习
- Git学习
- Git学习
- git 学习
- git学习
- css 加号 选择器 加号 选择临近紧贴后面的一个元素
- redis面试总结
- 将html里面的img标签拼上全路径
- 使用JDBC获取与mysql的连接
- netty初步学习
- Git学习
- iptables理解与实际配置
- jmeter函数和变量(三)
- java基础十九天 线程同步
- js调用摄像头
- JS实现继承的几种方式
- Java实现发邮件功能
- 非常强大的在线开发平台加工具和资源
- TP5.0 动态注册路由报模块未存在错误