第一阶段 :git初始化的操作
想要让git对一个目录进行版本控制需要以下步骤:
-
首先进入管理目录
-
执行初始化操作
git init
-
查看管理目录下的文件的状态
git status 注:红色的文件要么是新增的要么是修改过的
-
管理指定的文件(红变绿)
git add 文件名 git add .
-
个人信息配置:用户名、邮箱;(安装完只需要配置一次,以后都不需要在操作)
git config --global user.email "邮箱" git config --global user.name "名字"
-
生成版本
git comment -m "描述信息"
-
查看日志
git log
Git的三大区域
介绍: 作区(写代码的地方)—git add暂存区(临时存储)—git commit本地库(历史版本)
第二阶段:Git进阶
-
回滚
首先需要查看历史版本:通过 git log
需要回滚到那个版本就将那个版本的版本号加在指令后面
git reset --hard 版本号 例如:git reset --hard c8c22b9cf18f228b35b2e25d4b4ad494dcf5661a
如果我们又后悔了需要返回刚刚的那个版本怎么办?这个时候
git log
已经查不到感刚刚回滚的版本号了;需要我们用到一个新的命令:git reflog
这样我们就能看到我们刚刚回滚的版本号了,再使用命令进行回滚;
git reset --hard 版本号
Git的强大之处,能够让我们在任意版本之间来回切换。
-
Git 分支
分支可以给使用者提供多个开发环境,也就是说可以将你的工作从主线中分离出来,以免影响开发主
线,等分支的代码开发完之后,再合并到主线代码上,就比如说,我们写了一个毕业论文,大致的流程
写完了,但是我们可能觉得某些地方写的太少了(添加新功能),需要丰富一下,或者有些地方可能写
的有问题需要调整一下(之前的代码有bug,需要修改),那么我们怎么做呢,是不是会复制一份这个
论文,然后再修改,改完之后如果没有什么问题,就将改完之后的作为了最新的版本(分支上添加了新
功能或者修复了bug,然后进行分支合并)。
大家在这里先不用去考虑公司里面到底是怎么使用git来进行工作的,我们首先先来看看,如果你在自
己的电脑上开发程序,用git是怎么个流程,怎样开分支,分支是个什么样子?比如,我们现在的代码开发到了第三个版本,之前我们没有说什么分支的概念,其实我们开发代码的
时候,默认的分支叫做主分支(master分支),只是我们一直还不知道。
命令总结:
-
查看分支
git branch
-
创建分支
git branch dev
-
切换分支
git checkout dev # 创建并且切换分支 git checkout -b dev
-
分支合并(可能会产出冲突,需要手动解决)
git merge dev 注:将dev分支的代码合并到master分支上,就必须在master分支上执行这个命令,注意是谁合并谁
-
删除分支
git branch -d bug # 删除bug分支
第三阶段: Github代码管理仓库
-
向远端仓库推送代码
1. 给远程仓库起别名 git remote add origin 远程仓库地址 2.向远程推送代码 git push -u origin 分支
-
从远程仓库中拉去代码(拉取了所有东西,包括分支等)
1. 克隆远程仓库代码 git clone 远程仓库地址 (内部已经实现 git remote add origin 远程仓库地址) 2. 切换分支 git checkout 分支
换一个电脑继续开发
指令总结
上传代码
1. 给远程仓库起名
git remote add origin 远程仓库地址
2. 向远程推送代码
git push -u origin 分支
在新电脑上第一次获取代码
3. 克隆远程仓库代码
git clone 远程仓库地址(内部已实现git remote add origin 远程仓库地址)
4. 切换分支
git checkout 分支
在新电脑上进行开发
5. 切换到dev分支进行开发
git checkout dev
6. 把master分支合并到dev(仅一次)
git merge master
7. 修改代码
8. 提交代码
git add .
git commit -m 'xx'
git push origin dev
回老电脑上继续写代码
9. 切换到dev分支进行开发
git checkout dev
10. 拉代码
git pull origin dev
11. 继续开发
12. 提交代码
git add .
git commit -m 'xx'
git push origin dev
以后如果我们还想继续开发,我们可以将我们的dev和master分支上的最新的代码都拉下来进行继续开发:
git pull origin dev
git pull origin master
如果在公司忘记提交代码,怎么搞?
在公司开发的时候
1. 拉代码
git pull origin dev
2. 继续开发
3. 提交代码
git add .
git commit -m 'xx'
注:忘记push了,没有推给GitHub
回到家继续开发
1. 拉代码,发现在公司写的代码忘记提交到GitHub上了
git pull origin dev
2. 继续开发其他功能
但是在家里写的功能有可能和你在公司开发的代码有些冲突(在同一行)
3. 把dev分支也推送到了远程
git add .
git commit -m 'xxx'
git push origin dev
第二天到了公司继续写代码
1. 拉代码,把昨天晚上在家里写的其他功能的代码拉到本地(有合并、可能产生冲突)
git pull origin dev
2. 如果有冲突,手动解决冲突(公司电脑上昨天忘记push的代码和昨日回到家后写的代码可能有些冲突)
3. 继续开发其他功能
4. 把dev分支也推送到远程
git add .
git commit -m 'xxxx'
git push origin dev
其实git pull origin dev等价于下面两个指令
git fetch origin dev #将远程仓库dev分支的代码拉到本地git的版本库中,为了和本地dev分支做
个区分,远程拉下来的dev分支会叫另外一个名字:origin/dev
git merge origin/dev # 合并远程拉取下来的dev分支的代码