Git
本地使用git
下载安装,检测是否安装成功:
git --version
首先要在被管理的文件夹中进行初始化,才能在这个文件夹中使用git命令管理:
git init
初始化后,会出现一个隐藏的文件夹.git
,此时代表当前这个文件夹及其以下内容都被git管理了。git管理文件夹的时候将管理过程分为3个区域:
- 工作区:自己写的源文件
- 暂存区:将要保存的文件,暂时存在暂存区
- 历史区:生成一个版本,只能将暂存区的内容生成版本。上传的时候只能上传历史区的内容
将源文件添加到暂存区:
将暂存区的文件拉回到源文件:
git reset HEAD -- 文件 # 将某个文件从暂存区变为源文件
git reset HEAD -- 文件夹/ # 将整个文件夹从暂存区变为源文件
git reset HEAD -- . # 将所有文件从暂存区变为源文件
将暂存区的内容生成历史版本:
git commit -m "版本说明"
查看所有版本信息:
git log
回到指定版本:
git reset --hard HEAD^ # 有几个上档键就回退几个版本
git reset --hard 历史版本号
让git能管理一个空文件夹:
在空文件夹中新建文件:.gitkeep
,这个文件没有实际意义,这是为了占位,让空文件夹能被管理的标识,以后要在文件夹中写文件的时候,这个文件可以被删除
让某些文件或者文件夹被忽略管理:
在和.git
同级的位置,新建文件:.gitignore
,在这个文件中书写要忽略的内容:
直接写文件名,代表要忽略的是哪个文件
写文件夹路径,表示要忽略的是哪个文件夹
*.后缀,表示要忽略的是所有后缀为指定后缀的文件
使用https上传:
添加上传地址:
git remote add origin https://github.com/weberWangjie/test.git # 其中的origin是变量名表示上传地址,可以自定义
开始上传:
git push -u origin master # 其中的origin是表示地址的那个变量名
首次推送远程需要输入用户名和密码。
第二次上传的时候只需要:git push
将远程代码拉取到本地:(要先新建一个文件夹作为git管理的文件夹)
git clone 远程仓库地址
将本地代码和远程代码同步:(在本地仓库使用命令)
git pull
分支
一个大项目,会分很多人开发,每个人一个功能,这时候,每个功能作为一个分支,主分支只有目录结构。当所有人将自己负责的功能开发完成的时候,再将所有分支合并到主分支上,形成一个完整的项目。
每次初始化一个git的时候,默认创建一个主要分支:master
创建分支:
git branch 分支名
查看当前分支:
git branch
切换分支:
git checkout 分支名
创建并切换到这个分支:
git checkout -b 新分支名
合并分支:(将别的分支合并到自己分支)
git merge 要合并的分支
删除分支:(不能自己删自己)
git branch -D 要删除的分支
冲突
两个人同时操作同一个分支,提交的时候会有先后顺序,先提交的人正常提交了,后一个人提交的时候会产生冲突。因为git规定,每次提交必须是在原来的版本基础上,但是第二个人在提交的时候,在远程已经有了第二个版本,所以第二个人相当于从第一个版本向第三个版本提交。
冲突解决:
-
使用命令让本地和远程同步:
git pull
然后手动解决文件冲突
-
开辟新的分支,然后进行分支合并
git fetch origin master:tmp # 使用 fetch 获取远程最新信息并开辟一个临时分支 git diff tmp # 将当前分支和远程分支进行对比 git merge tmp # 将临时分支合并到当前分支
git拉取远程分支到本地
1.新建一个空文件夹
2.初始化
git init
3.与origin master 建立连接
git remote add origin 仓库链接
4.远程分支拉去到本地
git fetch origin dev
//dev为远程仓库分支名
本地切换到dev分支并与远程分支相关联,之后上传推送都将被送到此分支
5.在本地创建分支dev并切换到此分支
git checkout -b dev origin/dev
6.把某个分支上内容拉去到本地
git pull origin dev
7.正常上传,推送
git本地(除主分支)上传并创建到新分支(需同名)
1.新建文件夹
2.克隆
git clone 地址 我的文件夹
//最后可以克隆到一个自己命名的文件夹
3.进入我的文件夹
cd 我的文件夹
4.建立并切换到新分支
git checkout -b dev
//dev为新分支
5.把本地内容上传推送并上传远程新分支
git add .
git commit -m "版本号"
git push origin dev//(必须与远程分支同名)
//注意:之后每次上传推送仍需要git push origin dev