当软件开发一个功能后,我们需要把代码提交到某个位置,让大家都能拿到,以便于完成协同开发项目,帮助程序员整合代码
目的:
帮助开发者合并开发代码
如果出现冲突代码的合并,会提示会提交合并代码的开发者让其解决冲突
软件:SVN ,GIT
windows下载:Git-2.43.0-64-bit.exe 下载,一路下一步安装即可
安装完成后:点击右键,多出两个命令
git bash here
git gui here
打开命令行:git-v
git有三个区
工作区:某个文件夹,在文件夹新增修改删除 更新文件 用户操作的位置
暂存区:工作区的变更----》提交到暂存区
版本库:班暂存区内容---》提交到版本库=---》文件就被版本管理了---》回退到某个版本
远程仓库:第三方:github,gitee,gitlab
工作流程:三个区的来回操作
常用命令:
1.初始化仓库:git init? 创建出一个 .git 文件夹,这个文件夹我们不能删除,如果删除仓库记录就没有了
2.查看仓库状态
git status
3.在工作区新建s1.py,加入一行代码
4.把变更提交到暂存区
git add 文件名字
git add .
5.把暂存区提交到版本库
git commit -m '注释,必须加'
6.查看版本记录
git log
git reflog
6.git chcekout . 把工作区变更回退,还没有放到暂存区
7.git reset --soft 版本号??? 唯一表示,可以不写全,短一些
git reset --mix 版本号 把版本库拉回到工作区
# 1 初始化仓库 ---仓库目录下会出现 .git 文件夹--》文件夹千万不要删除
git init # 初始化当前文件夹
git init 文件夹 # 在当前文件夹下创建文件夹,并把新创建的文件夹作为仓库
# 2 查看仓库状态
git status
git status -s #查看仓库状态的简约显示
# 红色:工作区有变更,但是没有提交到暂存区
# 绿色:工作区变更提交到暂存区,但是没有提交到版本库---》还没有被版本管理起来
# 白色:所有变更都被版本管理了
# 3 把工作区变更提交到暂存区
git add 文件名 文件夹
git add . # 所有变更
# 4 把暂存区提交到版本库
git commit -m '注释' # 只要提交一次,就会有个版本号,以后根据版本号我们可以回退到任意版本
# 5 设置用户名和邮箱--》一般写在git init之后,只设置一次
# 全局设置
git config --global user.name '用户名'
git config --global user.email '用户邮箱'
# 局部设置:
git config user.name 'xxx'
git config user.email '4@qq.com'
# 6 查看版本日志
git log # 能看到用户:lqz <3306@qq.com>
git reflog
----------了解-------------
# 7 撤销工作区变更
git checkout .
-- 撤销所有暂存区的提交
git checkout 文件名
-- 撤销某一文件的暂存区提交
# 8 撤销暂存区提交:add的逆运算
>: git reset HEAD .
-- 撤销所有暂存区的提交
>: git reset 文件名
-- 撤销某一文件的暂存区提交
# 9 git log 更多
查看时间点之前|之后的日志:
>: git log --after 2018-6-1
>: git log --before 2018-6-1
>: git reflog --after 2018-6-1
>: git reflog --before 2018-6-1
查看指定开发者日志
>: git log --author author_name
>: git reflog --author author_name
# 10 回滚到指定版本:
回滚到上一个版本:
>: git reset --hard HEAD^
>: git reset --hard HEAD~
回滚到上三个版本:
>: git reset --hard HEAD^^^
>: git reset --hard HEAD~3
回滚到指定版本号的版本:
>: git reset --hard 版本号 (重点)
>: eg: git reset --hard 35cb292
# git log
commit 7884b345a03ec8a1dfae5976d3e1c4ec55a2f785 (HEAD -> master) # 版本号
Author: xxx <4@qq.com> # 作者
Date: Mon Jan 22 12:29:13 2024 +0800 # 日期
xxx # 注释
# 如果做了代码回撤---》这里的日志看不到,就通过git reflog来查看
在仓库中,某些文件或文件夹,不期待被git管理,不被版本管理
我们可以在仓库目录下新建一个文件:.gitignore 在该文件中注明哪些不被git管理,标明语法如下
""" 过滤文件内容
文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤
/文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤
例如:
a.txt:项目中所有a.txt文件和文件夹都会被过滤
/a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤
/b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤
*x*:名字中有一个x的都会被过滤(*代表0~n个任意字符)
空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件)
注意:
# 以'#'开始的行,被视为注释.
# 忽略掉所有文件名是 lqz.txt的文件.
lqz.txt
# 忽略所有生成的 html文件,
*.html
# lqz.html是例外,不在忽略范围内
!lqz.html
# 忽略所有.o和 .a文件.
*.[oa]
"""
以后我们在创建分支之前需要先保证所有的文件都被git管理起来
创建分支步骤
1.创建分支
git branch dev? 创建一个dev分支
2.查看分支
git branch
3.切换分支
git checkout dev? 切换到dev分支
4.删除分支(不能自己删自己)
git branch -d dev
5.合并分支
切换到master上
git merge dev? 把dev合并到当前分支