Git的概念及常用命令

一、概念git reflog

二、常用命令

  1. 命令:git init ,将目录变成Git可以管理的仓库
  2. 命令:git add,将文件添加到Git仓库,可以多次添加
  3. 命令:git commit -m<message>,将文件提交,只需一次提交
  4. 命令:git log,显示最近到最远的提交日志(–pretty=onelint,将多行合并一行)
  5. 命令:git reset --hard HEAD^,回到上一个版本,在git中,HEAD表示当前版本,上一个版本就是HEAD^,上上个版本就是HEAD^^,如果是多个则使用HEAD~10(回到前10个版本)
  6. 命令:git reflog,记录每次操作命令
  7. 命令:git reset --hard commit_id ,回到指定版本
  8. 命令:git diff HEAD -- <file>,查看文件工作区版本和库中最新版本的区别

三、工作区和暂缓区关系
这里写图片描述

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

四、撤销修改

  1. 场景1:当改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令:git checkout -- file
  2. 场景2:当不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令:git reset HEAD <file>,就回到场景1的情况,再安装场景1处理
  3. 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参版本回退方法(前提是没有推送到远程库)

五、删除文件

  1. git checkout -- test.txt 其实是用版本库里的版本替换工作区的版本,无论工作区的是修改还是删除,都可以“一键还原”
  2. git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么永远不用担心误删,但要消息,只能恢复文件到最新的版本,会丢失最近一次提交后修改的内容

六、创建密钥

  1. ssh-keygen -t rsa -C "youremail@example.com" 然后输入文件名id_rsa,连续空格键,在git包下即可找到id_rsa.pub文件里既是密钥

七、推送到远程服务

  1. 把本地master分支的最新修改推送至GitHub,命令: git push origin master
  2. 克隆远程服务,例:git clone git@github.com:michaelliao/gitskills.git

八、创建与合并

  1. 分支创建:git checkout -b <name>,在git checkout命令上添加-b参数表示创建并切换,name分支名
  2. 查看所有分支,git branch,当前分支前会有“*”
  3. 合并分支,git merge <name>,合并指定分支到当前分支
  4. 删除分支,git branch -d <name>
  5. 查看分支合并图,git log --graph --pretty=online --abbrev-commit

九、分支管理策略

  1. Fast forward模式下,删除分支后会丢掉分支信息。git merge --no-ff -m<message>:表示禁用该Fast forward模式

十、Bug分支

2.Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作,git stash
2. git stash list 查看工作现场位置
3. 恢复工作现场方法,一种:git stash apply,恢复后,stash内容并不删除,你需要用git stash drop 来删除;另一种:git stash pop,恢复的同时把stash删除

十一、新功能

  1. 在开发一个新的feature,最好新建一个分支;如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name> 强行删除

十二、多人协作

当从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来,并且,远程仓库的默认名称时origin。查看远程库信息,使用命令:git remote,或者git remote -v 显示更详细的信息
2. 推送分支git push origin master,如果推送其他分支,比如dev,git push origin dev
这里写图片描述

十三、抓取分支

默认情况下,只能看到本地master分支,要在dev分支上开发,就必须远程创建origin的dev分支到本地,命令:git checkout -b branch-name origin/branch-name例:git checkout -b dev origin/dev

  1. 本地新建的分支如果不推送到远程,对其他人就是不可见的
  2. 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull 抓取远程的新提交,如果抓取失败,则需要建立本地分支与远程分支的链接git branch --set-upstream branch-name origin/branch-name
  3. rebase操作可以把本地未push的分叉提交历史整理成直线,git rebase

十四、标签

  1. 查看标签信息,命令git show <tag-name>

这里写图片描述

  1. 删除本地标签,命令:git tag -d <tag-name>,
  2. 如果要推送某个标签到远程,使用命令:git push origin <tag-name>,或者,一次性推送全部尚未推送到远程的本地标签:git push origin --tags
  3. 如果标签已经推送到远程,要删除,则先删除本地:git tag -d <tag-name>,然后删除远程:git push origin :refs/tags/<tag-name>

十五、关联远程库

  1. 命令:git remote add origin git@gitee.com:用户名/项目名.git
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值