git简单使用

常用

1.远程分支强制覆盖本地当前分支

 git fetch --all                  //从远程下拉代码
 git reset --hard origin/分支名   //更新到目标分支
 git pull                         //更新

add之前,放弃没add的修改

git checkout -f

2.合并之前的多次commit为一个

 git rebase -i HEAD~要合并的最近几次commit的数量
 // 自动跳入一个页面,vim模式把前几行中第一行的pick保留,要压缩掉的其他的几行的第一列pick都改成s,保存退出
 // 又跳入一个页面,vim模式修改提交的注释,保存退出
 git push -f                       //因为要删掉一些原来的commit,所以要强制push

3.删除远程分支

git push origin -delete referVerify

4.用gerrit代替直接用git时,本地也是在master上开发(之前是在分支上开发,把master pull下来到最新,分支与master rebase),这样当远程master向前走了以后,直接git pull(git fetch + git merge FETCH_HEAD)会产生菱形结构且gerrit提交失败,提示在改别人的分支。这时应该用git pull --rebase等于git fetch + git rebase FETCH_HEAD

一.git的工作方式

Git 保存的不是文件差异或者变化量,而只是一系列文件快照
一个文件对应一组不同版本用blob格式存储的快照。
git所有数据存储前都要计算校验和,然后以校验和来引用。

二.git使用步骤

*新电脑上用的时候要创建ssh key并添加到网站的账号里

git config --global user.name "youremail"
git config --global user.email "youremail@domain.com"
ssh-keygen -t rsa -C "描述当前的是哪个用户"
//三次回车,把提示目录下的pub ssh key,添加到gitlab

1.在本地创建版本库

终端定位到空文件夹后,初始化git仓库
git init

2.在github网页上创建新的库

根据网页上向导说明在本地执行两行代码
(把本地仓库推到远程新建到仓库上)
远程仓库和本地仓库关联起来
git remote add origin git@github.com:LittleVolcano/learngit.git

push必须有commit才可以,所以第一次push之前(如果仓库文件夹是空的话)要先放上点东西。
git push -u origin master
命令为:git push < remote > < branch >
-u参数指定远程的默认主机。
本段意思:将本地的master分支推送到origin主机,同时指定origin为默认主机。以后用就可以不加任何参数直接git push了。

拉下来已经存在的远程库

git clone git@XXX.git                  //从远程仓库clone下来代码
git submodule update --init --recursive     //把子模块也拉下来
//以上两句可以用一句 git clone git@XXX.git --recursive 替代

3.使用,提交

工作区(新增加的文件会是未追踪状态)-----add----->暂存区-------commit--------->干净
git status//查看状态,有哪些文件更改了(新增未追踪、修改)
git diff//工作区(add之前)和暂存区(已经add的)的详细差别。
git commit会先新建一个tree对象,该对象包含指向每个文件快照的指针。然后新建一个commit对象,该对象含有指向tree的指针和作者信息等。这样就能通过一次次的commit查到当时版本的快照。

git add learngit.txt
git add abc.txt
git commit -m "这里写注释"
git push origin master//不用-u了

4.回退

git log//可以查看最近几次的修改的版本号,作者,时间,提交名称
git reflog//可以查看所有提交的版本号
git reset --hard HEAD^//当前用HEAD表示,前一个用HEAD^表示。回退到上一个版本。
git reset --hard dafoajdfoaj//跳转到指定版本号的版本。

5.从远程克隆到本地

//远程的库的右上角有clone or download,点击会出现库的地址。
克隆到本地:

git clone https://github.com/LittleVolcano/gitskills.git

要拷贝别人的库,先在github上fork别人的库到自己到github仓库,再用上边步骤同步到本地库

6.分支

git branch查看有哪些分支,当前所在分支前会标注星号。查找所有分支(本地存下的)git branch -a 查找分支git branch -a | grep 分支名
本地创建分支并切换过去 git checkout -b 分支名
push新分支到远程git仓库git push -u origin 仓库名
git checkout 分支名切换分支
git merge 分支B当前分支和B分支合并
git branch -d 分支名删除分支
git push origin -delete referVerify删除远程分支

从远程同步git fetch origin

git branch -D referVerify

一次简单的版本控制例子

先修改了某些文件
git status //会用红色显示修改了没add的文件,目前本地分支和远程是同步的
git add .
git diff //哪个文件哪里修改了会被详细列出
git status //add后会用绿色显示暂存了没提交的文件,目前本地分支和远程是同步的
git commit -m "本次提交的名称" //在本地提交
git status //此时会提示我(本地)的分支比远程的领先1次commit
git push //推送的远程仓库

参考中文资料

《progit》:https://git-scm.com/book/zh/v2/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值