目录
一、安装指南
git https://www.cnblogs.com/xiuxingzhe/p/9300905.html
TortoiseGit https://www.cnblogs.com/xiuxingzhe/p/9312929.htm
二、基础操作
2.1配置全局账号
git config --global user.name “xxx”
git config --global user.email “gitlab注册的邮箱”
2.2本地同步
git clone http://192.168.0.200/ed/edge-gateway.git
2.3分支操作
2.3.1关联远端分支
远端新建,本地不存在
git checkout --track origin/branch_name
本地新建,远端不存在
git push --set-upstream origin branch_name
2.3.2查询
查看所有分支
git branch -a
查看当前所在分支
git branch
查看各分支最后一次提交
git branch -v
2.3.3删除
删除本地未合并的V1.0分支
git branch -D V1.0
删除本地已合并的V1.0分支
git branch -d V1.0
删除远程的V1.0分支
git push origin --delete V1.0
2.3.4 更新分支
更新分支的内容到当前目录的分支
git rebase 分支名称
更新远端分支
git push origin 分支名称
更新本地分支
git fetch origin
取远端分支并合并到本地
git merge origin/分支名称
取远端分支并分化一个新分支
git checkout -b 新分支名称 origin/分支名称
2.3.5 分支切换
git checkout 分支名称
创建分支并进入该分支
git checkout -b 分支名称
2.3.6 分支重命名
git push --delete origin src (如果没有推送到远程分支这一步可以省略)
git branch -m src dest
git push origin dest
2.3.7 合并分支
①//本地代码开发完成,添加工程文件并远端新建分支
git add .
git commit -m ‘Create V1.0.1'
git push -u origin V1.0.1
②//切换到整合到的分支(将V1.0.1整合到V1.0,就切换到V1.0)
git checkout V1.0
③//多人开发应先同步当前分支
git push origin V1.0
④//合并分支
git merge V1.0.1
可以看到合并的更改文件2个,分别是Driverm/HelloGit.c和REAMDE.md,同时对应文件后面会显示差异个数,Driverm/HelloGit.c为6个新增,REAMDE.md为1个新增,10个删除。
⑤删除本地已合并分支
git branch -d V1.0.1
⑥更新远端分支
git push origin V1.0
⑦删除远端子分支
git push origin --delete V1.0.1
其他操作:
git branch -merged //查看哪些分支被整合
git branch -no -merged//查看哪些分支未被整合
2.4文件及文件夹传输
2.4.1 TortoiseGit操作
TortoiseGit(T)推送
2.4.2 Git指令
git add 文件或文件夹名称
git commit -m “操作说明”
git push origin bransh_name //上传到远程对应的分支
2.5删除文件及文件夹
2.5.1单文件夹删除
git rm -r --cached .setting #--cached不会把本地的.setting删除
git commit -m 'delete .setting dir'
git push -u origin master
例:
git clone http://192.168.0.200/ed/edge-gateway.git
git rm -r 文件夹名称
git commit -m "提示信息"
git push origin master
2.5.2多文件删除
直接修改.gitignore文件,将不需要的文件过滤掉,然后执行命令
git rm -r --cached .
git add .
git commit
git push -u origin master
2.6标签操作
git push origin 标签名
等同于如下操作:
git push origin refs/tags/源标签名:refs/tags/目的标签名
2.6.1给本地分支打标签
git tag -a 标签名 -m “操作说明”
例:git tag -a V1.0-Release -m "Tagging version 1.0-Release"
2.6.2推送标签
git push origin 标签名
例:git push origin V1.0-Release
2.6.3删除本地标签
git tag -d 标签名
2.6.4删除远程标签
git push origin :refs/tags/标签名
例:git push origin :refs/tags/V0.1-Release
2.6.5列出标签
git tag
2.7日志及版本操作
2.7.1 获取日志
git log
2.7.2版本信息
回退到上一个版本
git reset --hard HEAD^
回退上上一个版本
git reset --hard HEAD^^
回退到前10个版本
git reset --hard HEAD~10
恢复到指定版本
git reset --hard HEAD@{版本号}
PS:最新提交的版本为0
2.7.3查看历史记录版本号
git reflog
三、异常处理
1、! [rejected]master -> master (non-fast-forward)
原因:是因为你在码云创建的仓库有ReadMe文件,而本地没有,造成本地和远程的不同步,
本地没有ReadMe文件,那么就在本地生成一个:
git pull --rebase origin master 本地生成ReadMe文件
git push origin master
2、![remote rejected] master -> master (pre-receive hook declined)
原因:由于当前用户没有push权限,就是[master]代码默认是被保护的,所以进行push的时候会报错
3、 src refspec V1.0 matches more than one
原因: branch名和tag名有相同的,在执行git push origin :branchName时,就会报上面的错
删除tag: git tag -d tagName