Git学习笔记

Github是什么

Github已成为全球最大的代(tong)码(xing)开(jiao)源(you)社(wang)区(zhan)

目的

记录git常用操作,这里不阐述什么是git,git的原理等。如有需要,请点击本文的参考文献

重要概念

  • 工作目录:它持有实际文件;
  • 缓存区(Index):它像个缓存区域,临时保存你的改动;
  • HEAD:指向你最近一次提交后的结果。

基本设置

  • git config
    全局设置
# 提交时的作者和邮箱设置
git config --global user.name "Ashin"
git config --global user.email "475382220@qq.com"

基本操作

在客户端创建一个仓库(比较少用,一般都是git clone一个仓库,不需要自己去init一个仓库)

  • git init

克隆远程仓库到本地,把url替换成你想要clone的地址或者文件路径

  • git clone url

查看状态 简化信息的输出 可以使用 git status -s

  • git status

可以使用通配符*

  • git add

提交记录

  • git commit -m “写下你的注释”

有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令尝试重新提交

  • git commit --amend

查看日志记录

  • git log --pretty=oneline

提交本地仓库到远程仓库,提交到哪个仓库,-u的作用是记住这次提交的仓库位置和分支,下次可以直接运行git push

  • git push -u origin master
  • git push

从远程拉取最新的版本

  • git pull origin master ==> git fetch;git merge

远程仓库管理

  • git remote add name url 添加一个远程仓库,name=url name 一般为origin
  • git remote -v 查看仓库列表
  • git remote set-url origin https://github.com/isc-projects/kea.git 修改远程地址

分支管理

如果要解决一个bug或者增加feature,可以通过创建分支

  • git branch <branch_name>

创建分支,并切换到新分支

  • git checkout -b <branch_name>

检出指定远程分支到本地分支,本地分支可以自定义名字

  • git checkout -b <local_branch_name> origin/<remote_branch_name>

从指定标签检出一个分支,比如发布的某个tag发现bug就会用到

  • git checkout -b <local_branch_name> <tag_name>

切换分支,如果没有这个分支,则匹配远程分支是否有同名分支branch_name,有则切换并跟踪,没有报错。
注意:还原也是用这个命令,需要注意下区别

  • git chenkout <local_branch_name>
# 如果<local_branch_name>为远程分支名,则自动set up to track remote branch
Switched to a new branch 'dev_baffle'
Branch 'dev_baffle' set up to track remote branch 'dev_baffle' from 'origin'.

合并某个分支,需要切换到其他分支,然后合并你想要的分支

  • git merge <branch_name>

删除本地分支,一般在增加完feature或修复bug文成后,并做merge操作,可以进行分支删除操作

  • git branch -d <branch_name>

删除远程分支

  • git branch -d -r <origin/remote_branch_name>

删除远程仓库分支

  • git push origin :remote_branch_name

标签管理

查看标签列表

  • git tag

新增加标签

  • git tag <tag_name>

标签的版本信息

  • git show <tag_name>

推送到远程 其他人克隆共享仓库或拉取数据同步后,也会看到这些标签

  • git push origin <tag_name>

撤销操作

修改已经被 git add README.md 放入暂存队列,要从暂存队列删除

  • git reset HEAD README.md
  • git reset HEAD *

撤销修改,恢复到当前最新版本的
git checkout – file可以丢弃工作区的修改
命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

  • 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
  • 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
  • 总之,就是让这个文件回到最近一次git commit或git add时的状态。

回退到指定版本,commit id 这里的id可以根据 git log 查询,也可以使用相对引用HEAD^或HEAD~1等方式

  • git reset --hard <commit_id>

将本地的状态回退到指定远程分支的一样

  • git reset --hard <origin/master>

现在总结一下:
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

其他

windows下创建.开头的文件名

文件命名为.yourname.

例如:
.gitignore.
在这里插入图片描述

参考文献

git - 简易指南
GIT和SVN之间的五个基本区别
Try Git
git恢复被修改的文件
git设置用户名密码
Git 基础 - 撤消操作
快速掌握 Git 用法
git clone 时显示Filename too long的解决办法
Git教程
撤销修改
Pro Git
如何在github添加公钥
Git配置多个SSH-Key
git、gitlab、github、gitee 到底都是什么鬼
GIT仓库如何恢复到前一次提交
git 拉取远程指定分支 pull本地不存在的分支
Git删除远程Tag、分支
Git 基础 - 打标签
解决冲突
Git使用小技巧之多个远程仓库
Git 分支 - 远程分支
Git 分支 - 分支的变基


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值