git 笔记
git基本介绍
作用:
分布式版本管理软件
git-bash的基本使用
- 启动
- 关闭
- 命令
- mkdir 创建目录
- cd 切换目录
- ls 查看目录
- ls -a 查看目录,包含隐藏目录
- touch 新建文件
- rm 删除文件
- clear 清屏
- cat 查看文件内容
- 方向键:切换历史命令
- tab: 补全
git的基本流程
-
- 初始git仓库
-
- 把文件添加到git
-
- 提交本次修改
- git commit -m “提交说明”
- 如果是第一次提交,还要设置邮箱和用户名
-
- 重复2,3,4
- 通过git log来观察每次的提交信息。
git三个工作区域
- 工作区
- 暂存区
- 运行
git add 文件名 。 把对文件的修改加入暂存区 - 仓库
- 运行
git commit -m "提交说明" 。把暂存区的内容,放入仓库 ,产生新版本。
git文件的四种状态
- 未跟踪(Untracked)。这个文件对于git来说是新的。从来没有add过。git不会对它进行文件管理。
- 已暂存。通过add命令。
- git add 文件名
- git add . // 添加全部文件
- 已提交。通过commit命令。
- git commit -m “提交说明” 。 产生一个新的版本。
- 已修改。提交commit之后,再次编辑了这个文件。
git的后悔药
-
只在工作区修改了,但没有add。
git checkout -- filename.txt git checkout . -
工作区修改了,也add了,到了暂存区。
- 对于单个文件
- git reset HEAD filename.txt
- git checkout – filename.txt
- 对于全部文件
- git reset HEAD
- git checkout .
-
add,commit之后,就进入仓库 从仓库中恢复:
- 先知道commitID .
git log --oneline - 恢复某一个文件 : git checkout commitID filename.txt
- 整体恢复:git reset --hard commitID
- 注意:通过 git status ,检查是否干净"nothing to commit, working tree clean",如果不是,需要再次commit。
git分支管理
- git init 就有master分支
- 为什么 要创建新的分支
- 开发新功能,写新的代码,不希望影响原来的能够正常工作的代码。这时,我们就会拉分支。
- 命令
- git branch 分支名 : 创建分支
- git checkout 分支名: 切换已有的分支
- git checkout -b dev; 创建并切换分支 dev
- 一个分支中添加的文件,在另一个分支不能看见的。
合并分支
为什么建立新分支:不影响旧代码的基础去实现新的功能。
为什么要合并分支:新的功能已经通过的检测,验证没有问题。要把这个新的功能补充到旧的代码中去。就要合并分支。
git merge 分支 : 把指定分支合并到当前的分支。
- master 分支不做开发。只用来merge。
- 开发建立dev分支。如果新功能也要合并到master.
- 修复bug,从master拉一个新的分支(一般会用bug12132命名),修复bug结束,切回master,从master去merge dug分支。
git合并分支时的冲突
- 多个分支修改了相同的文件,无法自动合并。
- 手动解决冲突
git使用分支的基本流程
在项目开发过程中,我们至少会接触三个分支:
-
名为master的主分支 master分支表示稳定的,可以正常运行的主分支。在我们初始化git时,它就会自动被创建。 -
名为dev的开发分支 开发中,我们一般会新建一个名为 dev的分支(dev是development的简写,表示开发),在这个基础上进行开发,测试,然后合并到master分支上。当然了,名字也不一定必须是dev。 -
名为bug的临时分支。bug解决完成之后,合并到master,再删除bug这个分支。
github基本操作
|