git软件
- 下载安装git软件。
- 安装成功后,任意路径位置,鼠标右键出现Git-Gui和Git-Bash图标,即安装成功。
- 在任意路径(文件夹下)进入Git-bash环境,开始git之旅吧。
git版本控制使用流程
-
进入要管理的文件夹
-
执行初始化命令
git init
-
管理目录下的文件状态
git status # 新增的文件和修改过后的文件都是红色的
-
管理制定文件(红变绿)
git add 文件名 git add . # . 表示管理所有文件
-
个人信息配置:用户名和邮箱【第一次使用需要】
# 全局配置 git config --global user.mail "your@exmaple.com" git config --global user.name "yourname"
# 局部配置:当前项目
git config user.mail "your@exmaple.com"
git config user.name "yourname"
-
生成版本
git commit -m ‘描述信息‘
-
产看版本记录
git log
忽略文件
-空文件夹不被管理
-指定某些文件或者文件夹不被git管理
-在项目根路径,跟.git文件夹一个路径,新建.gitignore.,在里面配置
- 语法:
# 号是注释,没有用
文件夹名字,表示文件夹忽略,不被管理
/dist 表示根路径下的dist文件夹,不被管理
*.py 表示后缀名为py的文件,都被忽略
*.log*
git三大区域
工作区:编写代码的地方
- 已经管理的文件(空白)
- 新文件/修改为文件(红色)
暂存区:暂时管理起来的将要推送到版本库 # 通过add将工作区红色的文件推送到暂存区
版本库:存放版本的地方 # 通过commit命令将版本推动到版本库
git回滚
# 回滚到之前的版本
git log
git reset --hard 版本号(形式1)
# 回滚到之后的版本
git reflog
git reset --hard 版本号(形式2)
三区域切换
分支和工作流
- 查看分支
git branch
- 创建分支
git branch 分支名称
- 切换分支
git checkout 分支名称
- 合并分支
git merge 要合并的分支
# 注意:切换分支再合并;站在当前分支上,把其他分支合并过来
- 删除分支
git branch -d 分支名称
- 工作流
实战中至少保留两个版本,一个是上线环境下的稳定版,一个是开发环境下的开发版。
托管代码Github
-
使用github:官网注册账号
-
新建远程仓库
- 在家里上传代码(第一次推送时可能需要提供github账号)
1. 给远程仓库起别名 origin
git remote add origin 远程仓库地址
2. 向远程仓库推送代码
git push -u origin 分支
- 到公司新电脑上第一次获取代码
1. 克隆远程仓库代码
git clone 远程仓库地址(内部已实现git remote add origin 远程仓库地址)
2. 切换分支 (clone会拷贝所有的分支)
git checkout 分支
- 在公司进行开发
1. 切换到dev分支进行开发
git checkout dev
2. 把master分支合并到dev [仅一次]
git merge master
3. 修改代码
4. 提交代码
git add .
git commit -m ‘...‘
git push origin dev
- 回家继续写代码
1. 切换到dev分支进行开发
git checkout dev
2. 拉代码
git pull origin dev
3. 继续开发
4. 提交代码
git add .
git commit -m ‘,,,‘
git push origin dev
- 在公司继续开发
1. 切换到dev分支进行开发
git checkout dev
2. 拉代码
git pull origin dev
3. 修改代码
4. 提交代码
git add .
git commit -m ‘..‘
git push origin dev
- 开发完毕,要上线
1. 将dev分支合并到master,进行上线
git checkout master
git merge dev
git push origin master
2. 把dev分支也推送到远程
git checkout dev
git merge master
git push origin dev
忘记推送代码到github云端
如果在A电脑上开发的新功能忘记推送到github云端,此时在B电脑上是不发pull到新功能的代码。
这种情况下不可能在B电脑上重新开写已经开发完成的那部分代码,可以接着编写一些其他的代码后推送到github
然后回到A电脑上,pull新的代码。合并时可能出现冲突,此时手动处理冲突即可。
GitHub Desktop
- 图形界面的git命令操作软件,
- 告别单调的git命令行界面,鼠标点点点即可完成所有的git命令。
- 完美无缝对接Github.
rebase(变基)使git的提交记录变的简洁
rebase应用场景1
将多条提交记录整合成一条记录。合并记录时建议不要合并那些已push到远程仓库的记录。避免造成版本不一致的混乱。
rebase应用场景2
将分支上的版本插到master主线上,形成一条线的结构,而不是merge形成的分支的结构
rebase应用场景3
代码忘记推云段端时的
注意事项
git rebase 冲突
解决冲突
git rebase -- continue