Laravel 我的教程笔记:一些常用命令( git )

Git 初始化

  • 查看版本

    git --version
  • 配置个人用户及邮箱

    git config --global user.name "139006339@qq.com"
    git config --global user.email "139006339@qq.com"
  • 初始化

    git init
  • 查看 git 状态

    git status
  • 查看日志

    git log
  • 创建 git 命令别名。下面这条命令,可实现 l 与 log 一样的效果。

    git config --global alias.l log

Git 远程仓库

  • 查看远程仓库路径列表
    git remote -v
  • 指定远程仓库名
    git remote add origin git@github.com:139006339/xxx.git
  • 删除指定的远程仓库
    git remote rm origin git@github.com:139006339/xxx.git

Git 分支

  • 查看本地分支

    git branch
  • 本地,创建分支

    git branch 分支名称
  • 本地,切换分支

    git checkout 分支名称
  • 本地,创建并切换分支

    git checkout -b 分支名称

    git返回上个版本(示例代码)

  • 输入以下命令,会出现不同版本,用于回退使用,最开始前面一长串的就是版本ID

    git log --pretty=oneline
  • 恢复到历史版本

    git reset --hard 版本i
  • 将修改推到远程服务器

    git push -f -u origin master

    Git 推送

  • 把工作时的所有变化提交到暂存区

    git add .
  • 仅监控已经被 add 的文件(即 tracked file ),他会将被修改的文件提交到暂存区

    git add -u
  • 是上面两个功能的合集( git add –all 的缩写)

    git add -A
  • 注释内容并提交到版本库

    git commit -m "注释内容"
  • 采用SSH推送

    git remote set-url origin git@example.com:GitRepoName.git
  • 推送到仓库分支 master

    git push -u origin master
  • 强制推送到仓库分支 master ,会覆盖原远程仓库内容

    git push -u origin master -f

- Git冲突

保留本地的修改 的改法

通过git stash将工作区恢复到上次提交的内容,同时备份本地所做的修改,之后就可以正常git pull了,git pull完成后,执行git stash pop将之前本地做的修改应用到当前工作区。

git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

放弃本地修改 的改法 —-这种方法会丢弃本地修改的代码,而且不可找回

git reset --hard
git pull

git 拉取仓库指定目录

// 在本地指定文件夹内执行此命令设置为git仓库
git init 
// 拉取remote all objects信息
// 添加远程仓库地址,实现拉取remote的all objects信息
git remote add origin http://github/xxx.git 
// 开启sparse clone
// 用于控制是否允许设置pull指定文件/夹,适用于Git1.7.0以后版本,本质是开启sparse clone
git config core.sparsecheckout true
// 本地目录的.git文件夹下,如果没有sparse-checkout文件则创建,在其中添加指定的文件/夹fileName,就是需要拉取的那个特定文件/夹。*表示所有,!表示匹配相反
echo "fileName" >> .git/info/sparse-checkout 
// 查看
cat .git/info/sparse-chechout
// 拉取指定目录
// 拉取命令是一样的,只是已经通过配置文件sparse-chechout指定了目标文件/夹
git pull origin master 

Git正在被另外一个程序占用,重启计算机也无法解决。

原因:Git在上次使用中遭遇崩溃,部分被上锁资源没有释放。

解决方案:

1.将项目文件夹下的 .git文件夹中的index.lock文件删除即可(需要显示隐藏文件,.git是隐藏文件夹)
2.直接在Git中输入命令行:rm .git/index.lock

本作品采用《CC 协议》,转载必须注明作者和本文链接
adays
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!