Git常用指令

基本操作

用户操作:config

配置用户名和邮箱:

git config --global user.email zhen24

git config --global user.name zhen24

查看配置项

列表:git config --list --global

单个:git config --get user.name

初始化仓库:init

  • git init
  • 用途:生成.git文件夹

查看仓库的状态:status

  • git status

向暂存区域添加文件:add

  • git add README.md

保存仓库历史记录:commit

  • git commit -m "log":
  • git commit -am "log" : add 和 commit 的合并操作,不然修改也需要先add
  • 一行日志使用-m,大量日志不要-m,会自动启动编辑器。若编辑器无信息,则中止提交。

查看日志:log/reflog

  • git log/git reflog
  • git log:显示所有提交记录
  • git reflog:看所有分支操作记录
  • 只显示一行信息:git log --pretty=short
  • 显示文件/目录相关信息:git log dir/file
  • 显示文件的改动:git log -p

查看更改前后差别:diff

  • git diff
  • 暂存区与工作目录差别:git diff
  • 工作目录与最新版本差别:git diff HEAD
  • 每次提交前最好都git diff HEAD,避免不该的该的被改了

分支操作

查看分支:log --graph/branch

  • git branch / git log --graph
  • 标有*的表示当前分支
  • git log --graph:以图表形式查看分支

创建与切换分支:checkout

  • git checkout [-b] :创建-b,切换不用
  • 创建分支不需要连接中央仓库
  • 分支的概念:git中的分支为特性分支,分支具有单一特性
  • 主干分支(master):不应存在半成品,各个特性完成后,合成至主干。

合并分支:merge

  • git merge --no-ff
  • --no-ff:禁用快进式分支
  • 快进式:合并的分支A作为master
  • 禁用快进式:合并的分支A与原master合并,生成新的对象提交

更改提交

版本回溯:reset

  • 回溯根据hash值:git reset --hard fd0cbf0d4a25f747230694d95cac1be72d33441d
  • 使用git reflog获取hash值,哈希值只要输入 4 位以上就可以执行

消除冲突:add&&comit

  • 合并若产生冲突时,会把冲突文件合成到一个文件里,
  • 此时修改该文件,添加进缓存区git add,再提交git commit,即可解决冲突

修改日志:commit --amend

  • git commit --amend
  • 输入后启动编辑器,编辑保存即可

压缩历史:rebase

  • git rebase -i [version]
  • rebase 的前提是仓库的文件,均已全部提交

推送至远程仓库

添加远程仓库:remote add

  • git remote add origin url
  • origin:远程仓库标识
  • url:远程仓库URL

推送至远程仓库:push

  • git push -u origin branch
  • origin:远程仓库标识
  • branch: 本地分支
  • -u:origin与branch建立关联关系,origin的branch为本地的branch的upstream,获取可直接pull

从远程仓库获取

获取远程仓库:clone

  • git clone url

  • 执行git clone会默认处于master分支下,同时会自动将origin设置成该远程仓库的标识符。

  • 获取远程分支:git checkout -b feature- D origin/ feature- D

获取远程分支最新的内容:pull/fetch

  • git pull origin feature-D:将最新内容拉下来后直接合并
  • git fetch:将最新内容拉到本地,检查后决定是否合并
  • git pull = git fetch + git merge

Github Pull Request 交互

发送Pull Request

请求对方仓库采纳我们我们的代码

  1. Fork:界面操作,Fork出一个自己的仓库
  2. clone:把代码下载到本地
  3. branch:在特性分支中开发,明确开发的主题
  4. push -u:创建远程仓库
  5. Creat Pull Request:界面操作,确认要发送的内容,填写请求采纳的信息。
    对于较大的工程量,可已经分批Pull Request,但要在采纳信息中填好Tasklist,标记哪些已完成,哪些在开发中
  6. 仓库维护: 关注原仓库,但原仓库有重大更新是需要,进行同步更新
    1. 如果是无条件同步,直接在网页同步,git push即可
    2. 如果原仓库的代码不一定要全部同步过来,则需要是先拉,再合并,再上传,
      1. git remote add
      2. git fetch
      3. git merge
      4. git push

采纳Pull Request

  • 代码审查
    • 在Github查看代码,并给予评论(适用于小修改;大修改,先获取再评论)
    • 获取发送方仓库:git pull
    • 创建用于检查的分支:git check out -b
    • 删除:git branch -D
  • 采纳
    • 小修改:Merge pull request(界面操作)
    • 大修改:使用检查的仓库git push

问题与解决方法

分支切换失败

现象

error: Your local changes to the following files would be overwritten by checkout:
        协议与库/码流封装.md
Please commit your changes or stash them before you switch branches.

原因

当前分支有未跟踪的文件,checkout 命令会覆盖它们,请缓存( stash )或者提交( commit )。

解决方案

git add && git commit:保存修改

git add && git stash:存入缓存

git clean -f/-n: 清除文件(-f)/清除(预览)

推送远程仓库失败

现象

error: failed to push some refs to ''

原因

由于远程仓库中代码版本与本地不一致冲突导致

解决方案

git pull :先拉取远程仓库实现同步,再推送,如有有冲突要先解决冲突
ean -f/-n`: 清除文件(-f)/清除(预览)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值