① 自己要使用GitHub进行代码的托管和版本更新的控制
② 在开发的过程中,我们会经常保存已经调试好的功能的代码,然后再复制一份用于开发调试下一份功能,所以最后整个项目文件将会有各种插件的文件副本,想找到某个完好的功能的版本根本无从下手。
③ 需求并不是固定的,有时候功能开发完后,但需求变化了,不需要该功能,就无法快速回到没有该功能的版本
例如:公司要上线一个新功能,你们开发团队为实现这个新功能,写了大约5000行代码,上线没2天,就发现这个功能用户并不喜欢,你老板让你去掉这个功能,你怎么办?你说简单,直接把5000行代码去掉就行了,但是现在会出现一个问题,你的这个写了3周功能,也许你已经不记得新增加了哪5000行代码了?所以你急需要一个工具,能帮你记录每次对代码做了哪些修改,并且可以轻易的把代码回滚到历史上的某个状态。这个神奇的工具就叫做版本控制工具。
例子来自:To_run_away的博客
git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理
Working :正在工作的版本文件(可以编辑、添加、修改)
? ↓ git add 命令
Staging :暂存区,还未提交的版本文件
? ↓ git commit -m “description” 命令
Repository:仓库,已经提交的全部的版本文件
? ↓ git push 命令
Repository: 网上仓库
图形界面(Git UI Here)
进行图形界面操作即可
命令行模式(Git Bash Here)
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 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为使得仓库还原到该版本
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是你当前的本地分支。
?
原文:https://www.cnblogs.com/wan123/p/14323461.html