git 快速入门 笔记

快速入门的git,作者很棒,写的很详细。但他人的始终是他人的啊,自己还是需要整理自己的

git 安装与配置

git 直接官网下载,安装即可,地址:https://git-scm.com

安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

安装后,配置全局身份,证明是你上传的:

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

单个项目配置身份名,在项目根目录下进行单独配置

git config user.name "Your Name"
git config user.email "email@xx.com"

git config --list 查看当前配置, 在当前项目下面查看的配置是全局配置+当前项目的配置, 使用的时候会优先使用当前项目的配置

工作区 和 暂存区

pull

graph LR;

  本地工作区-->|add file|暂存区;

  暂存区-->|commit file|本地版本库;

  本地版本库-->|push|远程版本库;

上图顺继续很重要,不能跳跃执行(commit 文件只会提交add过的文件,文件修改需要重新add,push只会推送commit过的文件)

工作区(Working Directory)

就是你在电脑里能看到的目录,即自己的工作目录

暂存区

就是使用add命令,将修改的部分添加到特定的区域,等待commit操作

版本库(Repository)

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支

基本使用

初始化

git init //选取适合的空文件夹初始化仓库
git add README.md//添加本地文件
git commit -m "first commit"//提交到本地暂存区
git remote add origin https://github.com/shenwd/empty.git//关联远程服务器
git push -u origin master//推送到远程master分支

撤销修改

  • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

  • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

  • 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

删除文件

git rm file//删除本地文件
git commit file//提交文件删除的修改
git push // 上传

其实删除文件同样是对文件的修改,操作步骤一致

远程库操作

初始版本库连接与查看:

git clone <版本库的网址> //克隆版本库
git remote -v //查看远程库链接
git remote show <主机名>//查看该主机的详细信息。
git remote show//查看 remote 名
git remote add <主机名> <网址>//添加远程主机
git remote rm <主机名>//删除主机名
git remote rm <主机名>//远程主机的改名

版本跳跃

git log查看最近到最远的提交日志

版本回退:

Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164…882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

恢复到指定版本git reset –hard commit id

git reflog // 可以查看历史所有版本的id

多人协作

多人协作的工作模式通常是这样:

  • 首先,可以试图用git push origin branch-name推送自己的修改;
  • 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  • 如果合并有冲突,则解决冲突,并在本地提交;
  • 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
  • 如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name。

需要熟悉的部分git 命令:

git remote -v;查看远程库信息
git push origin branch-name //推送相关分支到远程
git checkout -b branch-name origin/branch-name//在本地创建和远程分支对应的分支,本地和远程分支的名称最好一致;
git branch --set-upstream branch-name origin/branch-name //建立本地分支和远程分支的关联
git pull origin branch-name //抓取分支到本地

标签管理 TAG

在Git中打标签非常简单,首先,切换到需要打标签的分支上,敲命令git tag 就可以打一个新标签:默认标签是打在最新提交的commit上的

git tag <tag-name> //用于新建一个标签,默认为HEAD,也可以指定一个commit id;
git tag //查看所有标签:
git tag <tag-name> commit id//在历史提交的版本上(commit id)打标签
git show <tag-name> //查看标签信息
git tag -a v0.1 -m "version 0.1 released" 3628164 //创建带有说明的标签,用-a指定标签名,-m指定说明文字:
git tag -d <tag-name> //删除标签
git push origin <tag-name> //推送某个标签到远程
git push origin --tags //一次性推送全部尚未推送到远程的本地标签

删除远程标签:

git tag -d v0.9//先删除本地标签
git push origin :refs/tags/v0.9  //然后,从远程删除。删除命令也是push,但是格式不同

分支管理

基本操作

Git鼓励大量使用分支:

合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息

如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息

禁止使用ff模式合并分支 –no-ff

查看分支:git branch

创建分支:git branch

切换分支:git checkout

创建+切换分支:git checkout -b

合并某分支到当前分支:git merge

删除分支:* git branch -d *

强制删除: **git branch -D  ××

git log –graph –pretty=oneline –abbrev-commit//待探究 查看合并分支操作 id

解决合并冲突

git diff    //#是工作区(work dict)和暂存区(stage)的比较
git diff --cached   // #是暂存区(stage)和分支(master)的比较
git diff HEAD  //#查看工作区和版本库里面最新版本的区别

bug分支 stash

在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。

当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前正在dev上进行的工作还没有提交:

Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:

$ git stash
Saved working directory and index state WIP on dev: 6224937 add merge
HEAD is now at 6224937 add merge

现在,用git status查看工作区,就是干净的(除非有没有被Git管理的文件),因此可以放心地创建分支来修复bug。

确定要在哪个分支上修复bug,假定需要在master分支上修复,就从master创建临时分支,修改完分支并合并后切换到工作分支

使用 * git stash list * 查看保存的所有工作

恢复:
git stash apply 恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

另一种方式是用git stash pop,恢复的同时把stash内容也删了

接入github

  1. 检查本机是否已有ssh秘钥

  2. 没有秘钥使用一下命令进行创建:

    ssh-keygen -t rsa -C "youremail@example.com"

  3. github中添加ssh公钥

  4. bash中使用ssh链接接入github

    git remote add origin git@github.com:shenwd/empty.git

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值