工作区:我们直接编辑的地方,比如使idea打开文件直接操作
暂存区:数据暂时存放的地方,是工作区与版本库之间数据交流的纽带
版本库:存放已经提交的数据,push的时候就是将这区域中的数据push到远程仓库的。
二、Git基本操作git add xxx 该命令只能将文件从工作区提交到暂存区
git commit -m …只能将文件从暂存区提交到版本库中
文件夹中有一个隐藏的.gti文件夹,这个文件夹就是一个git仓库,git仓库不可嵌套,即有隐藏文件.git的文件夹不可以嵌套
1.创建版本库创建或指定一个文件夹
2.初始化版本库3.添加文件到版本库中git init 在指定的文件夹中执行初始化命令,是该文件夹成为一个git仓库
就是使用git把文件管理起来,通过git add命令,在通过git commit命令提交到版本库;可以多次add后统一commit
4.status和diff命令git add xxxfile
git commit -m “说明”
| 命令 | 介绍 |
|---|---|
| status | 查看当前库到状态 |
| diff | 查看文件的变化的【工作区和版本库】 |
版本回退git log 查看文件的历史版本,该命令显示的日志会很多
git log --pretty=oneline 单行显示日志
git reset --hard HEAD^ 回退到上一个版本
git reset --hard 版本号 回退到指定的版本
该方式也可以在返回退到最新版本,只不过git log日志中是没有最新日志版本号记录的。所以可以提前保存下来,也可以通过如下命令查看所有文件日志
三、撤销管理 1.还未提交到暂存区git reflog xxxfile 可以查看所有版本日志,log只展示回退版本之前的日志
2.提交到了暂存区git restore filename 可以通过如下命令实现回退(git checkout好像不行)
3.提交到了版本库git restore --staged filename 使用该命令将文件回退到工作区
四、删除管理git reset --hard HEAD^ 直接回退到上个版本
git reset --hard 版本号 回退到指定版本号
操作和添加文件差不多,也是通过回退来实现
GitHub远程仓库 1.创建SSH Key2.登录GitHubssh-keygen -t ras -C “mymail@163.com”
在用户根目录下生成了id_rsa和id_rsa.pub两个文件
配置SSH:我的->setting->SSH and GPG keys
3.创建远程仓库1、通过create new repository创建仓库,仓库名称,描述信息,共开等…
4.关联远程仓库1、在本地创建一个仓库和远程仓库关联
2、直接在本地已经存在的仓库中关联远程仓库
git remote add origin git@gtihub.com:ffdd
3、导入其他仓库
5.推送文件到远程仓库6.克隆远程仓库git push -u origin master
一个文件夹中有一个隐藏的.git文件,这个文件夹就是一个仓库,注意不要在文件夹中继续创建仓库
五、分支管理 1.创建合并分支git clone git@github.com:xxx
git branch 查看分支
git branch 分支名称 创建分支
git checkout 分支名称 切换分支
2.分支操作git checkout -b 分支名称 创建分支并直接切换到分支
分支上的相关操作是独立的,其他分支是看不到的。其他分支需要看到,则需要合并分支;切换到要合并的分支上,然后merge
3.分支删除git merge 分支名称
4.解决冲突git branch -d 分支名称
冲突文件说明:
<<<<<>>>> 分支名称
等号上下两处就是冲突的内容,冲突后直接编辑冲突的文件即可;
5.分支操作和查看
master分支:该是主分支,不在上面进行开发,分支内容非常稳定
dev分支:一个新需求的开发分支,来自master,由项目经理管理
michoel分支:子需求1分支,每天开发后提交到本分支,由项目经理并合并到dev分支中
bob分支:子需求2分支,来自dev分支,每天开发完提交到本分之,由项目经理合并到dev分支
查看分支日志:
六、Bug分支git log --graph --pretty=oneline
针对突发任务,可以保存当前分支的工作状态,去处理临时任务,处理完成后回来继续工作;
七、多人协作 1.分支推送git stash 存储当前状态
git stash list 查看存储的状态列表
git stash apply 恢复之前的状态
git pull 拉取分支最新代码
git push 代码推送到远程分支
git push origin 分支名称 推动本地分支到远程仓库,如果远程仓库分支不存在则会自动创建这个分支
本地创建分支,然后和远程指定分支关联
2.冲突解决git checkout -b '分支名称‘ 本地创建并切换到改分支上
git branch --set-upstream-to==origin/本地分名称 远程分支名称
八、标签管理git pull 拉取代码,这时候肯能会冲突,然后解决冲突,和之前解决冲突方式一样
git push origin 分支名称 推送代码到远程分支
对于一些里程碑式的代码版本,需要记下来,此时可以使用标签,来给项目打标签;同时标签也可以
1.创建标签2.查看指定标签代码git tag -a 标签名 -m “说明” 给当前代码打标签
git tag 查看本地标签列表
git log --pretty=oneline --abbrev-commit 查看提交日志和对应的标签
git tag 标签 版本号 给指定版本号代码打标签
3.标签远程仓库推送和获取git reset --hard 标签 根据标签查看对应版本代码
4.标签删除git push origin --tags 将本地标签全部推送到远程仓库
git pull 拉取远程分支的tags
git tag -d 标签名
git push origin :refs/tags/标签名
这时候其他本地分支的标签不可以删除,需要手动删除
九、常用命令总结
git remote rm origin 删除远程仓库原有协议链接
git remote add origin http://xxxxx或者ssh的链接地址
然后pull代码或者push代码,这时候可能需要用命或密码; 用户名在git的log中查看,密码就是你访问内网的密码;



