git基本使用

git基本概念

git通过快照保存文件,管理文件修改信息。提交更新或保存项目状态时,会对更改的文件创建一个快照并保存这个快照的索引;对没有修改的文件,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个 快照流

 Git 有三种状态,你的文件可能处于其中之一: 已提交(committed)已修改(modified) 和 已暂存(staged)

  • 已修改表示修改了文件,但还没保存到数据库中。
  • 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
  • 已提交表示数据已经安全地保存在本地数据库中。

这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 版本库。

  • 工作区:本地电脑里的项目文件,就是代码。
  • 暂存区:英文叫 stage 或 index。一般存放在项目中的 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

 ".git/objects" 目录下,里面包含了创建的各种对象及内容。git add 命令将工作区修改的文件快照保存到objects中,同时更新缓存区index。git commit 将保存在暂存区域的文件快照索引转储到 git 目录中数据库。

目前为止,三种状态都在本地电脑,还没有提交到远程仓库。git本地仓库是把拷贝远程仓库所有的内容,包括暂存区和版本库(/.git文件夹)。

git基本操作

设置本地项目使用git管理版本

git init        

git add .

git commit -m "版本1"

git init会在当前目录创建 .git文件夹,里面包含用来版本管理的一系列文件。git add 和git commit将当前文件提交到git开始管理。

克隆远程仓库

 git clone -b dev https://github.com/libgit2/libgit2.git mygit

 指定克隆远程dev分支到本地mygit文件夹,也可以省略。    

git常用的命令
文件操作git add [文件/文件夹] 将文件添加到缓存区
git .  添加所有文件
git commit [文件] -m ‘新版本’提交到本地仓库
git commit -am '修改 hello.php 文件'不用add,将工作区提交到本地仓库
git checkout .用暂存区内容替换工作区,会丢失已经修改的代码
分支操作git push将本地分支推送到远程分支
git push origin 本地分支:远程分支
git push -u origin master推送到远程master分支,并关联远程分支。第一次提交时使用。
git pull将远程分支拉取到本地
git pull origin 远程分支:本地分支拉取远程新分支
git branch dev 创建dev分支
git branch显示分支列表
git branch -d dev删除dev分支
git push origin --delete dev删除远程dev分支
git checkout dev切换dev分支
git checkout -b dev新建dev分支并切换
git checkout -b dev origin/dev拉取远程仓库的新 dev分支
 git push --set-upstream origin dev本地新分支dev提交到远程
git merge test将test分支合并到当前分支
仓库操作git remote add origin 链接地址本地仓库关联远程仓库
git remote -v查看关联的远程仓库
git remote rm origin删除远程关联

git使用的问题处理

一、git pull 本地代码修改会拉取失败,Please commit your changes or stash them before you merge. 

  • git stash  先将未提交的代码保存到堆栈中
  • git pull  拉代码
  • git stash pop  将堆栈中的代码取到工作区
git reset --hard撤销工作区中所有未提交的修改内容,回到上一次版本,并删除之前的所有信息提交,不可恢复。
git stash将所有未提交的修改(工作区和暂存区)保存至堆栈中。
git stash pop把刚才stash到本地栈中的代码pop到本地

二、关联A仓库的分支代码要提交到B仓库,git push,会提示要拉取最新的代码。git pull,会提示

fatal: refusing to merge unrelated histories,意思就是拒绝合并不相关的历史。

使用下面命令,允许不相关的历史记录:

git pull origin2 master --allow-unrelated-histories

后续继续更新!

参考:

git把A仓库提交到B仓库遇到的问题

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值