赞
踩
下载:
官网下载 https://git-scm.com/
国内较快地址 https://npm.taobao.org/mirrors/git-for-windows/
检测是否成功安装
1、鼠标在桌面或者文件夹中任意位置右键,出现 git bash here 和git gui here都表示成功。
2、打开CMD 输入 git --version 出现版本号表示成功。
git安装成功后, 需要进行全局的配置, 配置的是git的用户名和 邮箱地址 , 执行一下命令
git config --global user.name 'git的用户名'
git config --globale user.email 'git注册绑定的邮箱'
已提交(committed)、已修改(modified) 和 已暂存(staged)。
已修改表示修改了文件,但还没保存到数据库中。
已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
已提交表示数据已经安全地保存在本地数据库中。
工作区
工作区是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。(带有隐藏git文件的文件夹)
暂存区
暂存区是一个文件,保存了下次将要提交的文件列表信息,一般在 Git 仓库目录中。 按照 Git 的术语叫做“索引”,不过一般说法还是叫“暂存区”。
Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,复制的就是这里的数据。
git init 初始化仓库在第一次本地上传到远程时需要执行的,会出现一个 git 的隐藏文件夹
git add 提交文件到暂存区;
# 提交单一的文件
git add 文件名
# 提交的全部文件
git add .
git commit 把暂存区的文件提交到本地仓库
git commit -m '提交的备注信息'
git status
git ls-files 默认是显示暂存区中全部文件的路径,有点像查看本地仓库文件目录(此功能已半弃用)
注意:当文件提交到暂存区以后,你又修改了文件的内容,那么需要重复上述步骤;git add -->git commit
记录是从 最近修改 到 最远
#方式(1) 查看的简略的历史(有分页效果)
git log
#方式(4) 查看详细的历史纪录
git reflog
#方式(2)查看简略的历史记录(一页显示完)
git log --pretty=oneline
#方式(3)查看更加简略的历史记录
git log --oneline
当历史记录过多的时候,一页展示不下:
去下一页: 空格
上一页:b
到尾页了,显示END
退出:q
# 回退到指定的版本
git reset --hard 版本号
# 回退到上一个版本
git reset --hard HEAD^
# 回退到n个版本之前 num 是具体的数值,代表回退的版本
git reset --hard HEAD~nu'm
注意 :本地库的版本变化的时候,暂存区,工作区,也会跟着变化,
所以我们回退了版本,能直观的在工作区文件看到回退的内容
需要了解的,不用
mixed参数
git reset --mixed
本地库指针移动的同时,重置暂存区,但是工作区不动,
soft参数
本地库指针移动的时候,暂存区和工作区都不动
【删除文件操作/找回本地库删除的文件】
注意:当你文件上传到本地仓库后,把工作去中的文件手动删除(代码删除是,r m 删除的文件名 )了,
那么只是删除了工作去中内容,
还需要将删除操作同步到暂存区(git add 删除的文件名)
将删除操作同步到本地库(git commit -m “提交的信息”)
,这样三个地方的文件都删除了
(但需要注意,并不是真正的删除了,而是往前走了一个版本)
【所以即使你删除了工作区的文件,仍可找回】
找回本地库中删除的文件,实际上就是将历史版本回退到刚才添加文件的那个版本即可
如果你更改了工作区内容,又不知道和暂存区是不是一样,那么可以git diff 文件名,
将工作区中的文件,和暂存区文件比较
git diff 比较将工作区中的文件,和暂存区所有
文件比较
还可以
git diff 历史版本号码 文件名 来比较暂存区和工作区内容
clear清空命令行界面
在版本控制中,使用多条线同时推进多个任务,这里面说的多条线,就是分支
分支并行开发,互不影响,本地分支隶属于本地仓库
查看分支 创建分支 切换分支 删除分支 合并分支
# 查看分支列表,当前所在的分支名前边会有一个 * 进行标注 git branch git branch -v 查看分支并显示分支里文件版本号及备注信息 #查看当前分支的文件名的具体内容 cat 01.txt(文件名) # 切换分支 git switch 分支名 git checkout 分支名 # 拉取远程的分支到本地 git pull origin 远程分支名 # 创建并检出分支(创建一个分支,然后切换到该分支) git checkout -b 分支名 # 单独创建分支 git branch 分支名 # 给新创建的分支改名字 git branch -m left01 leaf01 旧名 新名 # 删除分支 git branch -d 分支名 # 合并分支: 需要注意操作的分支, 把a 分支 合并到 b分支上,需要在b分支上执行该命令 合并是把a分支文件给b分支,a分支文件依然还在 git merge -m '备注信息' 分支名 git merge -m '备注信息' --no-ff 分支名 # 推送本地分支到远程仓库 git push origin 分支名 # 删除远程分支(本地分支还在) git push origin --delete 分支名 #更新远程仓库所包含分支 git fetch
git checkout除了可以操作分支,它还可以操作文件。这条命令可以重写工作区,是一个很危险的命令。
注意: 你创建分支后,这个新分支的内容与主分支是对应的,也就是一样,它不是空的
解决:人为决定,留下想要的即可
给远程库取别名
查看别名
git remote -v
然后将本地仓库内容上传到远程仓库
git push -u origin(是别名) master(写分支名)
如果这里出现报错:出现这个问题一般是由于你新建的项目的README.md不在本地
【温柔型方案】
解决:先同步到本地(保证本地的文件与远程一致,在其上面进行修改后在推送远程)
git pull --rebase origin master
通过git pull 先将本地库更新到与远程库一致的版本,但要注意本地库后来做的修改可能被覆盖,最好使用git fetch(不会自动合并),查看更新情况再有选择合并,或者先将本地库修改过的文件备份,git pull后再重新修改;
再运行git push即可成功。
【暴力型方案】
git提供了一种强制上传的方式:git push -f ,它会忽略版本不一致等问题,强制将本地库上传的远程库,但是一定要谨慎使用,因为-f会用本地库覆盖掉远程库,如果远程库上有重要更新,或者有其他同伴做的修改,也都会被覆盖,所以一定要在确定无严重后果的前提下使用此操作。
如果执行某个指令出现 提示输入 用户名和密码的操作:
输入git的用户名和密码,如果密码错误,则需要去用户凭据管理中进行修改密码或者删除用户凭据(控制面板 ==》凭据管理器 ===》 (wind10) windows凭据管理 ====》 普通凭据 ====》 找到自己的凭据 ,可以编辑 或者删除 )
git push -u 与不带u两者区别?
加了参数-u后,以后即可直接用git push代替git push origin master
意思就是我们不用在后面加 origin + 要提交的分支名 ,直接 git push 即可
但是前提是,第一次提交需要加 -u参数后,后面的提交就直接可以 git push
ssh-keygen -t rsa -C '邮箱地址'
获取公钥
查看公钥: c/Users/Administrator/.ssh/id_rsa 在该目录下找到 id_rsa.pub (公钥) id_rsa(私钥)
把公钥部署到仓库中
在远程仓库的个人中心 ==》 设置 ===》 安全设置 ===》 ssh公钥 ===》 标题自定义, 把公钥粘贴进入
把 本地仓库和远程仓库进行关联: 通过ssh 方式进行
git remote add 仓库名字 远程仓库的ssh地址
git pull remote 仓库名字 分支名
git clone 命令把远程仓库克隆到本地
建一个空的文件夹
git clone 远程仓库的地址(可以是https地址,亦可以是密钥)
克隆操作:可以做三件事
(1)初始化本地库
(2)将远程库完整的克隆到本地
(3)替我们创建远程库的别名
然后:拉取远程的分支到本地
git pull origin 远程分支名
这样就完成了将远程需要的内容克隆到本地
当a你修改完后,就要上传到远程,重复上面本地推送远程的操作
git push
git push 命令 把本地仓库的文件推送到远程(推送到对应的分支上)
git push
注意:因为你是在自己电脑操作,所以修改完上传不会出错,
实际开发中,会出错,
原因:项目经理创建了仓库,a程序员没有加入团队,但a程序员知道项目的地址,
下载并做好了项目,推送到远程仓库,就会报下面的错,但如果是同一台电脑则不会报错
1.主分支 —master
常见git仓库时会自动生成。一般来说,不要直接在master上面写代码,它只接受dev分支的合并。
master代码在实际项目中一般与线上的正式环境中的代码保持一致。
2.主开发分支 —dev
初始化项目之后,从master分支上开辟的新分支。一般也不直接在上面写代码,而是从各个功能分支上合并代码。
dev分支接受各个功能分支的代码后,进行测试,测试完成后合并到master分支上,在将master分支上的代码发布到正式环境。也就是我们常说的项目上线。
3.功能分支 —feature-XXX
是从dev分支上开辟的新分支。一般研发工作是在该分支上完成的。研发完成后,将其合并到dev分支上。假如开发购物车模块,分支名:feature-shopCar。
4.功能bug解决分支 —feature-XXX-fix-XXX
第二个XXX可以是bug的编号。 是从功能分支上开辟的新分支。bug修复后,再将其合并到功能分支上。
5.紧急bug解决分支 — hot-fix-XXX
直接从master分支上开辟的。进行紧急的bug修复。修复完毕以后,合并到mster分支上。
标签:就是将推送到远程的项目加一个版本号,内容和远程仓库的内容一样
在vscode分支的合并分支的操作中,想dev分支合并主分支master,那么需要在当前master分支下操作,(分支->合并分支)
在上一个分支基础上加新的内容新分支步骤
从需要的分支上创建一个分支,原来代码存在(正在更改的代码会提交在新的分支上)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。