Git基础知识
基本知识
- Git是一个分布式版本控制系统,无需服务器软件支持;
- Git把内容按照元数据方式存储,传统的SVN是按照文件存储;
- Git没有一个全局版本号,内容完整性高;
Git的文件存储结构
Git核心指令行
安装git客户端(windows操作)
git bash 支持Linux命名的git控制台(常规用)
git CMD 支持windows命令的控制台
git GUI 可视化界面
苹果电脑(自带git)
指令安装过程:https://www.runoob.com/git/git-install-setup.html
Git具体操作步骤
- cd 路径 - 进入当前目录
git bash下操作文件以及文件夹命令
1, cd : change directory的简写,改变目录bai的意du思,就是切换zhi到哪个目录下, 如 cd e:\fff 切换 E 盘下面的fff 目录。
当我们用cd 进入文件夹时,我们可以使用 通配符*, cd f*, 如果E盘下只有一个f开头的文件夹,它就会进入到这个文件夹.2, cd … 回退到上一个目录。我们在写js,或css时,我们引入文件时,… 表示的就是上一个目录, 所以 cd …
回退到上一个目录就很好理解了。注意,cd 和两个点点…之间有一个空格,3, pwd : print working directory, 打印工作目录,它会显示我们当前所在的目录路径。
4, ls: list, 列出当前目录中的所有文件, 只不过ll(两个ll)列出的内容更为详细。
5, touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。
6,rm: 删除一个文件, rm index.js 就会把index.js文件删除.
7, mkdir: 新建一个目录,就是新建一个文件夹. 如mkdir src 新建src 文件夹.
8, rm -r : 删除一个文件夹, r (recusive 是递归的意思),
删除用的就是递归,先删除文件夹里面的内容,再删除文件夹。 rm -r src 删除src目录。9, mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然,
这样写,必须保证文件和目标文件夹在同一目录下.10, reset 清屏,把git bash命令窗口中的所有内容清空。
Windows下修改Git Bash 默认路径
(1)安装好Git工具后,找到桌面或者win8的开始菜单下找到Git Bash 快捷方式
(2)选中Git Bash图标,右键,选中“属性”,
(3)去掉–cd-to-home,修改“起始位置”为自定义的git 本地仓库的路径,如:F:\Workspace\KYGitLabel
(4)再次打开Git Bash时已经修改了默认路径
(5)Git CMD 也如上修改,将快捷方式中路径修改为自定义路径即可,这样每次打开Git Bash 和Git CMD就自己进入本地的Git
Repository里面了。
-
配置git基本操作
github上新建远程仓库过程:官网注册登录之后,右上角“+”按钮 -> “New repository” -> 输入repository name以及Description -> “create repository” -
git init 在本地进行初始化(建立暂存区)
.git 文件存储当前项目的所有版本信息 -
工作区 => 暂存区
git add 文件名 // 提交单个文件
git add * // 提交所有文件git commit -m “这一次提交的相关描述”
-
查看当前工作区的状态
git status
-
从暂存区恢复文件到工作区
git checkout 文件名 -
查看工作区和暂存区版本的区别
git diff -
清屏操作
clear -
查看提交到暂存区的版本记录
git log // 可以显示每次提交的版本号
-
恢复文件到某个版本
git reset --hard 版本号 -
生成远程仓库的密匙
ssh-keygen -t rsa -C “github注册的邮箱地址”
执行后,查找本机生成的密匙文件:我的电脑 => 用户 => 用户名文件夹 => .ssh(隐藏文件)=> xxx.pub文件
-
github账户配置密匙
打开github网站 -> 右上角Settings -> "SSH and GPG keys"按钮 -> “new SSH key” -> 把xxx.pub文件内容复制过来,保存即可 -
暂存区 ==> 远程仓库
git remote add origin https://github.com/WimbWoo/J2SE_version1.git
git push -u origin master
【注意】提交过程可能需要输入用户名和密码
【问题】在向远程仓库提交代码时,遇到以下问题时
【解决方法】
1: 进行push前先将远程仓库pull到本地仓库
$ git pull origin master #git pull --rebase origin master
$ git push -u origin master
2: 强制push本地仓库到远程 (这种情况不会进行merge, 强制push后远程文件可能会丢失 不建议使用此方法)
$ git push -u origin master -f
3: 避开解决冲突, 将本地文件暂时提交到远程新建的分支中
$ git branch [name]
# 创建完branch后, 再进行push
$ git push -u origin [name]
- 已经提交至仓库后,再次提交至仓库
git push - 从远程仓库克隆至本地
git clone https://github.com/WimbWoo/J2SE_version1.git //仓库地址 - 从远程仓库同步代码
git pull
常用命令汇总
【1】基础命令
git init:初始化本地库
git status:查看工作区、暂存区的状态
git add <file name>:将工作区的“新建/修改”添加到暂存区
git rm --cached <file name>:移除暂存区的修改
git commit <file name>:将暂存区的内容提交到本地库
tip:需要再编辑提交日志,比较麻烦,建议用下面带参数的提交方法
git commit -m "提交日志" <file name>:文件从暂存区到本地库
【2】日志
git log:查看历史提交
tip:空格向下翻页,b向上翻页,q退出
git log --pretty=oneline:以漂亮的一行显示,包含全部哈希索引值
git log --oneline:以简洁的一行显示,包含简洁哈希索引值
git reflog:以简洁的一行显示,包含简洁哈希索引值,同时显示移动到某个历史版本所需的步数
【3】版本控制
git reset --hard 简洁/完整哈希索引值:回到指定哈希值所对应的版本
git reset --hard HEAD:强制工作区、暂存区、本地库为当前HEAD指针所在的版本
git reset --hard HEAD^:后退一个版本
tip:一个^表示回退一个版本
git reset --hard HEAD~1:后退一个版本
tip:波浪线~后面的数字表示后退几个版本
【4】比较差异
git diff:比较工作区和暂存区的所有文件差异
git diff <file name>:比较工作区和暂存区的指定文件的差异
git diff HEAD|HEAD^|HEAD~|哈希索引值 <file name>:比较工作区跟本地库的某个版本的指定文件的差异
【5】分支操作
git branch -v:查看所有分支
git branch -d <分支名>:删除本地分支
git branch <分支名>:新建分支
git checkout <分支名>:切换分支
git merge <被合并分支名>:合并分支
tip:如master分支合并 hot_fix分支,那么当前必须处于master分支上,然后执行 git merge hot_fix 命令
tip2:合并出现冲突
①删除git自动标记符号,如<<<<<<< HEAD、>>>>>>>等
②修改到满意后,保存退出
③git add <file name>
④git commit -m "日志信息",此时后面不要带文件名
【6】本地库与远程仓库的交互
git clone <远程库地址>:克隆远程库
功能:①完整的克隆远程库为本地库,②为本地库新建origin别名,③初始化本地库
git remote -v:查看远程库地址别名
git remote add <别名> <远程库地址>:新建远程库地址别名
git remote rm <别名>:删除本地中远程库别名
git push <别名> <分支名>:本地库某个分支推送到远程库,分支必须指定
git pull <别名> <分支名>:把远程库的修改拉取到本地
tip:该命令包括git fetch,git merge
git fetch <远程库别名> <远程库分支名>:抓取远程库的指定分支到本地,但没有合并
git merge <远程库别名/远程库分支名>:将抓取下来的远程的分支,跟当前所在分支进行合并
git fork:复制远程库
tip:一般是外面团队的开发人员fork本团队项目,然后进行开发,之后外面团队发起pull request,然后本团队进行审核,如无问题本团队进行merge(合并)到团队自己的远程库,整个流程就是本团队跟外面团队的协同开发流程,Linux的团队开发成员即为这种工作方式。
IDEA中Git插件使用
1.IDEA中配置Git
过程:file --> other settings --> setting for new projects --> version control --> git
2.配置GitHub账号
【遇到的问题】在输入GitHub账号和密码时出现Invalid authentication data错误,将地址 github.com 改成 https://github.com即可
3.点击VCS->Import into Version Control->Create Git Repository选择该项目,即在该项目目录下新建仓库成功
相当于在该项目目录下执行git init命令
4.在项目上右键选择Git,选择+Add
相当于执行git add命令
5.在项目上右键选择Git,选择Commit Directory,提交注释为“初始化项目成功”
相当于执行git commit -m “初始化项目成功”
6.在项目上右键选择Git,选择Repository,选择并点击击Push
相当于执行git push命令
【参考链接】
菜鸟Git教程 https://www.runoob.com/git/git-tutorial.html
插件使用 https://www.cnblogs.com/yanguobin/p/11822980.html
博观而约取,厚积而薄发~