首页 > 其他 > 详细

Git 知识整理

时间:2021-01-25 09:14:14      阅读:22      评论:0      收藏:0      [点我收藏+]

Git

为什么要学习Git?

  • ① 自己要使用GitHub进行代码的托管和版本更新的控制

  • ② 在开发的过程中,我们会经常保存已经调试好的功能的代码,然后再复制一份用于开发调试下一份功能,所以最后整个项目文件将会有各种插件的文件副本,想找到某个完好的功能的版本根本无从下手。

  • ③ 需求并不是固定的,有时候功能开发完后,但需求变化了,不需要该功能,就无法快速回到没有该功能的版本

    例如:公司要上线一个新功能,你们开发团队为实现这个新功能,写了大约5000行代码,上线没2天,就发现这个功能用户并不喜欢,你老板让你去掉这个功能,你怎么办?你说简单,直接把5000行代码去掉就行了,但是现在会出现一个问题,你的这个写了3周功能,也许你已经不记得新增加了哪5000行代码了?所以你急需要一个工具,能帮你记录每次对代码做了哪些修改,并且可以轻易的把代码回滚到历史上的某个状态。这个神奇的工具就叫做版本控制工具。

    例子来自:To_run_away的博客

Git是什么?

git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理

关于Git的概念

Working :正在工作的版本文件(可以编辑、添加、修改)

? ↓ git add 命令

Staging :暂存区,还未提交的版本文件

? ↓ git commit -m “description” 命令

Repository:仓库,已经提交的全部的版本文件

? ↓ git push 命令

Repository: 网上仓库

如何使用Git

  • 图形界面(Git UI Here)

    进行图形界面操作即可

  • 命令行模式(Git Bash Here)

Git的基本命令

git init //将当前的文件初始化为git管理的文件(才可以使用git的其他命令)、
git config --global user.name "你的名称或昵称" //配置名称
git config --global user.email "你的邮箱地址" //配置地址
git status //查看当前的状态,即比对Working的文件和Staging的文件有什么不同
git add . //将所有相对于Staging中Working的修改的文件添加到Staging中
git rm --cached "文件名" //将add添加的某个文件从Staging中移除
git commit -m "decription" //将Staging中的全部文件作为一个版本提交到本地仓库
git reset --<> HEAD~n //版本往前回滚n个版本
//  --mixed staging和repository改变,working不变
//	--hard staging、repository和working都改变
//	--soft repository改变,其他两个不变(用于还原一个commit)
git diff version1Id  version2Id //对比两个版本之间的不同
git log --all --oneline --decorate --graph // 树状查看所有的版本信息和描述
git remote -v //用于查询网路仓库的地址
git remote add origin "网络仓库的地址"//添加网络仓库到配置中
git remote rm origin //用于移除网络仓库
git push //将本地仓库的内容同步到网路的仓库,但不包含分支的信息
git push -u origin master # 只在首次提交且远程仓库中不包含任何文件的情况下使用
/********************/
tips: git mv A B //用于重命名

如何查看版本的不同

git diff <branch1> <branch2> # 在两个分支之间比较
git diff  # 比较暂存区和版本库差异
diff --git a/hello.txt b/hello.txt //对比的两个文件
index 2df014d..e69de29 100644 //唯一的文件编号与权限
--- a/hello.txt //前面的文件
+++ b/hello.txt //后面的文件
@@ -1,7 +0,0 @@ // -(表示前面的文件)1(开始的行号),7(连续七行为文件的代码) +(表示前面的文件)0(开始的行号),0(连续0行为文件的代码)
-hello!
-MY
-Name
-is
-Wan
-Happy
-!# -代表前一个文件中独有的内容,+代表后一个文件中独有的内容,没有则为两者都含有的内容

使用Git的分支命令

技术分享图片

git branch 分支名 #新建分支名
git checkout -b 分支名 #新建分支,并将head调至该分支
git checkout 分支名 #切换到以前的版本,并创建分支
git branch -d 分支名 #删除分支
git merge 非当前分支名 # 当前分支与其他的分支进行合并
git push origin HEAD -u #将当前分支作为远程仓库中的一个分支

注意:git checkout 分支名 和git reset <> HEAD ~n的区别为:checkout命令时=是切换到该版本,而reset为使得仓库还原到该版本

GitHub

GitHub中的一些概念

  • repository:仓库,一个Git库就是一个开源项目,通过git管理git仓库。(一般为公开,私有需要支付一定的费用)
  • star:收藏,可以在个人的收藏项中查看
  • fork:复制他人的分支,作为自己的仓库
  • pull Request:发起合并分支请求,将自己fork的项目进行改进后,请求他人将自己的更改合并到项目中
  • watch: 关注者,关注该项目的人,如果项目发生了改动将会有消息进行提醒
  • Issue:事务卡片,他人发现错误,Bug或改进意见,双方都可以停止交谈
  • projects: 可以添加模块和标签,可以随时移动、添加标签(例如:需要实现的内容 正在实现的内容 已经实现的内容)

在clone在GitHub上 项目

  • 外网下载:
git clone 仓库的地址 
  • 码云上下载(快速):

? 1、复制网址进入码云,选择将GitHub导入仓库

? 2、选择克隆下载,复制网址

? 3、在git bash下输入git clone url 命令

? 由于码云是国内平台下载速度是杠杠的

? 4、修改.git文件下的config文件,将gitee.com 改为 github.com

? (记得也要将用户姓名进行修改,如果不相同的话)

本地关联远程分支

git pull <remote> <branch>
#取回远程主机某个分支的更新,再与本地的指定分支合并
git branch --set-upstream-to=origin/remote_branch  your_branch
#其中,origin/remote_branch是你本地分支对应的远程分支;your_branch是你当前的本地分支。

?

Git 知识整理

原文:https://www.cnblogs.com/wan123/p/14323461.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!