分布式版本管理之Git------基础

常用命令

创建版本库:
  mkdir git_learn
  cd git_learn
  pwd
  git init
添加文件到Git:
  git add filename
  git commit -m “注释”
Git当前状态:
  git status
Windows下git bash 不显示中文:
  git config --global core.quotepath false
查看修改:
  git diff filename
丢弃修改:
  1.处于工作区没有add
    git checkout – filename 注意:git checkout filename 切换到另一个分支
  2.已经add到暂存区
    回退到最新版本:git reset HEAD filename
    丢弃修改:转第一条
查看日志:
  git log [–pretty=oneline]
版本标示:
  当前版本:HEAD
  上一个版本:HEAD^
  上n个版本:HEAD^n
版本回退:
  git reset --hard HEAD^n [使用ID也可以]
命令记录:
  git reflog
删除文件:
  rm filename 误删可从版本库中恢复出来即(转到)丢弃修改//必须是之前add到版本库的文件
  git rm filename
  git commit -m “remove filename”

自定义git

显示颜色:
  git config --global color.ui true
忽略特殊文件:
  在git工作目录下新建.gitignore文件,然后把要忽略的文件名写进去,Git就会自动忽略这些文件
配置别名:
  git config --global alias.[用于替换的缩略词] 要替换的命令词
例如:
  git config --global alias.st status --可使用 git st 替代 git status
  配置一个git last:
    git config --global alias.last ‘log -1’
  配置一个git lg:
    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”
配置Git的时候,加上–global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。
配置文件路径:.git/config

远程仓库

Git远程仓库:
  cd .ssh
  ssh-keygen -t rsa -C “youremail@example.com” 一路enter默认 不设密码
  将/home/hn/.ssh/id_rsa.pub内容复制到git account的ssh key
本地关联远程仓库:
  git remote add origin git@github.com:hn9527/learngit.git
  仓库名为默认为origin ,也可以自定义
第一次推送所有内容:
  git push -u origin master
推送至远程仓库:
  git push origin master
  可等到有网时一次推送
  把本地master分支的最新修改推送至远程仓库
克隆远程到本地库:
  git clone https://github.com/hn9527git/learngit.git
git clone和git pull:
  git clone是将整个工程复制下来所以,不需要本地是仓库(没有.git文件夹)
  git pull是将关联到的远程仓库拉取下来
git fetch更新本地仓库的两种用法:
  # 方法一
  $ git fetch origin master #从远程的origin仓库的master分支下载代码到本地的origin maste
  $ git log -p master… origin/master #比较本地的仓库和远程的区别
  $ git merge origin/master #把远程下载下来的代码合并到本地仓库,远程的和本地的合并
  # 方法二
  $ git fetch origin master:temp #从远程的origin仓库的master分支下载到本地并新建一个分支temp
  $ git diff temp #比较master分支和temp分支的不同
  $ git merge temp #合并temp分支到master分支
  $ git branch -d temp #删除temp

分支

分支:
  创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作
    而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上
    这样,既安全,又不影响别人工作。
  1.创建新分支dev:git branch dev
  2.切换到分支dev:git checkout dev 合成第一第二步:git checkout -b dev
  3.查看分支:git branch //在本分支上操作提交
  4.切回分支master:git checkout master
  5.合并分支:git merge dev //git merge 用于合并指定分支到当前分支
  6.删除分支:git branch -d dev
分支冲突:
  两个分支都修改了同一个地方
  手动修改冲突并重新提交
分支管理策略
普通合并:
  合并分支时,如果可能GIT会使用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息,
    如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit。
    可以从分支历史上看出分支信息
Bug分支:
  git stash 将当前工作现场储存起来,等以后恢复现场后继续工作 //可多次暂存
  切换到另一个分支处理Bug
  合并分支
  切换回原来分支,查看工作区是干净的,查看stash:git stash list
  恢复:
    方法一:git stash apply stash@{n} 恢复后stash内容不删除,git stash drop来删除
    方法二:git stash pop stash@{n} 恢复后把stash内容也删除了
Feature分支:
  创建新分支写新功能add后准备提交时取消
  使用 git branch -D fenzhi_name 强制删除
查看分支图:
  git log --graph --pretty=oneline --abbrev-commit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值