Git是什么?
git是一个代码版本管理工具,相当于在Windows中有不同的文件夹,不同文件夹存放着各个版本的代码
git的工作区域:工作区 add -> 暂存区 commit -> git本地仓库 -> push 远程仓库
Git怎么用?
本地库操作
git 命令名 --参数
查询配置信息:git config --list
1,设置签名,此命令有级别区分
项目级别/仓库级别
设置用户名 :git config user.name 'myname'
设置用户名邮箱:git config user.email '[email protected]'
系统级别
设置用户名 :git config --global user.name 'myname'
设置用户名邮箱:git config --global user.email '[email protected]'
级别优先级
就近原则:如果项目级别和系统级别二个都有则使用项目级别,如果只有系统级别则使用系统级别,二者都没有不允许
该设置在远程仓库中显示谁提交了该文件,跟你在登录远程仓库的用户名和密码是没有关联的
2,查看git工作区,暂存区的状态
git status
3,把工作区的新建和修改添加到暂存区
git add test.java
4,从暂存区移除文件
git rm --cache test.java
5,从暂存区提交文件到Git本地仓库
git commit -m"说明描述" test.java
6,查看git仓库的历史版本
展示版本的全部信息:git log
展示版本的精简信息:git log --pretty=oneline,此命令只显示后面的版本
展示版本的精简信息带版本角标:git reflog
7,回退历史版本
使用 git reflog 查看本地仓库的历史版本
git reset --hard 索引值
只能后退:git reset --hard HEAD^ 一个^后退一步
只能后退:git reset --hard HEAD~n 后退n步
reset 的 hard soft mixed
soft:只移动本地仓库,mixed:移动本地仓库和暂存区,hard:本地仓库,暂存区,工作区都移动
8,比较文件
git diff 文件名 :工作区和暂存区进行比较
git diff 本地库中历史版本 文件名:工作区中的文件和本地库历史记录进行比较
9,查看分支
git branch -v
10,新建分支
git branch hot-fix
11,切换分支
git checkout hot-fix
12,合并分支(主分支,和新建分支,提交内容到了本地版本库上都会产生操作日志reflog 可以看到主分支和新建分支的提交操作)
需要先切换到(被合并,需要新加文件的分支上)
git merge 另一个分支名字
13,解决冲突
当合并分支的时候,不同分支修改了同一个文件的同一个位置 则会发生冲突
14,解决冲突
1,git merge 另外一个分支,发生冲突
2,和另一个分支的作者协商修改冲突文件
3,修改好冲突文件后,git add , git commit -m "日志" 这里需要注意 commit 后不需再加文件名否则报错
15,git 删除分支
1 先切换到别的分支: git checkout dev20180927
2 删除本地分支: git branch -d dev20181018
3 如果删除不了可以强制删除,git branch -D dev20181018
远程库操作
1,查看关联的远程仓库地址:git remote -v
2,增加关联远程仓库:git remote add origin(地址关联的名字) 远程仓库地址
3,删除关联远程仓库地址:git remote rm 关联名字
4,本地仓库推向远程仓库:git push origin master 如果是https的地址此时会需要进行远程仓库的账号登录
5,克隆远程仓库到本地:git clone 远程仓库地址
git clone 会进行 1,完整的把远程仓库下载到本地。2,创建origin远程地址别名。3,初始化本地库
6,拉取命令git pull 远程库地址别名 远程分支名 pull = fetch + merge
git fetch 远程库地址别名 远程分支名
git merge 远程库地址别名/远程分支名
7,git 从远程仓库中克隆指定分支
git clone -b dev 远程仓库地址
8,将本地分支推送到远程仓库
git push origin(关联地址别名) 本地分支名:远程分支名
Git操作本地仓库三步骤
删除文件
1,工作区删除文件
rm test.java
2,从暂存区删除文件
git rm test.java
3,提交操作到Git本地仓库
git commit -m "提交描述"
新增文件
1,工作区新增文件
add test.java
2,加入暂存区
git test.java
3,提交到Git本地仓库
git commit -m "提交描述"
Git SSH免密登录
1,ssh-keygen -t rsa -C(大写) 远程仓库邮箱
2,在根目录下找到 .ssh (~ /.ssh) 里面的 id_rsa.pub
3,把id_rsa.pub的内容放到远程仓库的 SSH设置里面,new SSH key,生成 ssh key
4,本地git 使用 git remote add origin_ssh ssh地址 进行地址关联
5,使用 git push origin_ssh master 即可免密码进行推送
Git报错解决方法
报错:The request URL returned error:403 Forbidden while accessing
原因:私有项目,没有权限,输入用户名和密码
解决:进入 .git / config 将 [remote "origin"] url = https://github.com/用户名/仓库名.git 修改为 [remote "origin"] url = https://用户名:密码@github.com/用户名/仓库名.git
----------------------------------------------------
报错:cannot do a partial commit during a merge
原因:在合并的状态下加了文件名进行提交 git commit -m "resolve conflict" test.java
解决:不需要带文件名,直接使用 git commit -m"日志" 即可
---------------------------------------------------------
报错:
原因:解决冲突完后,直接commit了,需要先进行 add
解决:先进行 git add 然后 git commit -m
---------------------------------------------------
报错:
原因:本地仓库push到远程仓库报错,没有权限,没有加入到开发团队
解决:远程仓库账号需要加入开发团队
-----------------------------------------
报错:
原因:远程仓库的代码是最新的,本地仓库代码比较落后
解决:先 git pull 更新本地仓库代码解决冲突后在 git push 到远程仓库
-------------------------------------------
报错:
原因:拉取的远程仓库分支名字错误
解决:修改正确的分支名
--------------------------------
报错:
原因:分支未完全合并
解决:使用强制删除,或者先进行合并