您现在的位置是:技术博客 > PHPPHP Git使用篇 Lucas2019-07-25 12:06【代码】898人已围观 简介虽然Git不是衡量程序员能力的关键,但是毕竟工作中少不了与git打交道。下面分享下Git的安装过程、常规用法、使用小技巧、以及踩过的一些坑。 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,常用操作如下。 Git 阿里云镜像下载地址 <a href="https://registry.npmmirror.com/binary.html?path=git-for-windows/" target='_blank'>点此下载</a>。 #### 一、本地创建git仓库,并关联远程 常见的三步走 1、初始化 `git init` 2、创建于远程的关联 `git remote add origin git@gitee.com:xx/lucas-xx.git` 3、把远程master分支代码拉取到本地`git pull origin master:master` ------------ 克隆远程主分支的`git clone git@github:xxx/xxx.git`,通常如果没有添加公钥,会提示如下错误) 克隆远程其他分支`git clone -b v1.0dev https://gitee.com/xxx/xxx.git`。  4、以下操作也可以在命令行中键入: `cd ~/.ssh` 然后 `ls` 再 `subl id_rsa.pub` 5、如果向远程push失败,可以依次键入以下代码,清除里面的内容 ``` cd ~/.ssh ls subl known_hosts ``` 6、在本地生成公钥执行生成公钥和私钥的命令:ssh-keygen 并按回车3下(为什么按三下,是因为有提示你是否需要设置密码,如果设置了每次使用Git都会用到密码,一般都是直接不写为空,直接回车就好了)。会在一个文件夹(windows默认在C:\Users\Administrator\.ssh\)里面生成一个私钥 id_rsa和一个公钥id_rsa.pub。(可执行start ~ 命令,生成的公私钥在 .ssh的文件夹里面,例如  7、将本地生成的公钥加入到远程github上 #### 二、git常规操作 1、添加 `git add` 2、提交 `git commit -m ''` 3、推送远程 `git push` 4、从远程获取更新 `git pull` 5、本地代码库更新 `git checkout .` 6、将远程代码强制覆盖到本地 ``` git fetch --all git reset --hard origin/master git pull ``` 7、查看当前关联的远程服务器 `git remote -v` 8、查看当前本地分支 `git branch` 9、查看远程和本地分支 `git branch -a`  10、克隆远程代码 `git clone git@github.com:xxx/xxx.git` 11、将远程的test分支检出到本地的ask分支 `git pull orgin test:test` 12、切换到test分支 `git checkout ask` 13、建立本地分支与远程分支的关联` git branch --set-upstream-to=origin/<branch> <branch>` 14、本地当前分支推送到远程分支` git push --set-upstream origin <branch>` 15、提交本地test1分支到远程test2分支 `git push ogigin test1:test2` 16、将本地test1合并到本地master分支 ``` # 先切换到master分支 git checkout master # 执行合并 git merge test1 ``` 17、本地版本回退到b65sde版本 `git reset --hard b65sde` 18、回退xxx文件到b65sde版本 `git reset b65sde xxx.html` 19、git配置默认颜色 ``` git config --global color.status auto git config --global color.diff auto git config --global color.branch auto git config --global color.interactive auto # 忽略文件权限的检测 git config core.filemode false ``` 20、git log 别名+颜色配置 ``` git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" ``` 21、git 查看两个版本差异 ``` git diff hash1 hash2 --stat ``` 22、git 查看单文件历史版本 ``` git lg --follow -p xx.txt ``` 23、git 查看某版本的某文件 ``` # 例如:git show 32fcd5e0e286e9ef685f2476e3b9282e409d79df:public/index.html git show 版本号:xx.txt ``` 24、git 切换ssh模式和https模式 ``` # 切换成ssh模式 git remote set-url origin git@xxx.com:xx.git # 切换成https模式 git remote set-url origin https:xxx.com:xx.git ``` 25、缓存https模式下的账密 ``` git config --global credential.helper store # 也可以设置缓存密码多久,默认15分钟 git config --global credential.helper cache # 也可以设置自定义时间,例如如下的1小时 git config credential.helper 'cache –timeout=3600' ``` 26、删除本地分支 ``` git branch -D 分支名 ``` 27、删除远程分支 ``` # 例如删除远程develop分支,git push --delete origin develop git push --delete origin 分支名 ``` 提示:*如果gitee上已经删除了,本地`git branch -a`仍显示,则可以用`git fetch --prune`命令后,再查看即可* 28、远程pull提示本地冲突 ``` # 将本地修改存入缓存中 git stash # 查看缓存中的文件列表 git stash show # pull完成后,再恢复缓存中的文件(恢复后,需要手动处理冲突文件) git stash pop ``` #### 三、git小技巧 1、`ctrl + L` 清除屏幕 2、`git update-index --assume-unchanged 文件` 忽略跟踪,强制忽略文件在git status中不被检测到 3、`git update-index --no-assume-unchanged 文件` 恢复跟踪,上面指令的反操作 4、`git log` 状态下如何退出?英文输入法下按 Q 5、`git reset HEAD <file>` 将文件恢复到上一个版本,通常用在添加文件git add误添加文件的时候 6、`git reset --soft HEAD^` 撤销本次commit操作 #### 四、git疑难解答 1、.gitignore文件如何正常使用? 在里面定义免检测规则后,如果文件本身在版本库中存在,那么先执行`git rm -r --cached .` 命令以便清除缓存,然后 在 `git add` 或者 `git commit` 的时候就不会被检测了(注意如果未被add 那么在`git add` 的时候就不会被检测到,如果已经add但是未被 commit 那么在`git commit`的时候就不会被检测到) ``` git rm -r --cached . git add . git commit -m "update gitignore" ``` 2、如果出现这种警告问题,通常是windows换行符造成的  解决方式: `git config --global core.autocrlf false` 【增加该配置】 3、git add 大数据文件卡死意外中断,再次提交会出现以下报错  解决方式: `rm -f .git/index.lock` 【删除锁文件】 4、git add . 提示,warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal'  解决办法: 使用 git add -A 或者 git add -all(原因是因为有删除的文件,没有更新到本地的仓库而导致的) 5、git push 提示,atal: unable to access 'https://gitee.com/xxx/xx.git/': The requested URL returned error: 403  解决办法: ``` # 修改项目下git的访问用户名 vim .git/config # 将url = https://gitee.com/xxx/xx.git 修改为 url = https://用户名@gitee.com/xxx/xx.git ``` 转载:感谢您对Lucas个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源Lucas个人博客”。 很赞哦! ( 2 ) 上一篇:Fiddler安装与HTTPS抓包的实现 下一篇:PHPExcel导出遇到的编码坑 相关文章 高并发库存防控超量 Swoole 基础篇一(初识) Sublime代码格式化 Session与Cookie 点击排行 生活不止眼前的苟且,还有诗和远方 十年一觉电影梦 奥地利基茨比厄尔 禅修治愈身心 自律成就自我 零边际成本社会 Modern PHP 鸟哥的Linux私房菜 本栏推荐 要技术,更要有创意 定时任务 Curl无法发送https请求 Lnmp环境搭建 常用的SQL函数 Windows的cmd指令 ueditor工具栏浮动bug 有趣的js插件 标签云 git laravel swoole javascript vue ajax html css sql linux docker flask django nginx apache thinkphp markdown sublime wechat layui photoshop nodejs mysql windows composer java maven springboot mybatis IDE 猜你喜欢 Swoole 基础篇一(初识) PHP进程管理器 正则的快速上手 Sublime代码格式化 Lnmp环境搭建 高并发库存防控超量 Linux之top命令 常用的SQL函数 站点信息 建站时间:2018-05-01 在线人数:1人 文章统计:263篇 总浏览量:222597次 统计数据:百度统计 个人信息:扫描二维码查看