廖雪峰git教程总结

廖雪峰git教程总结

git base 命令

新建文件夹learngit

$ mkdir learngit

打开新建文件夹learngit

$ cd learngit

显示当前目录

$ pwd

全局配置

$ git config --global user.name “Your Name”

$ git config --global user.email “email@example.com”

配置别名

$git config --global alias.st status

$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
既然是一个unstage操作,就可以配置一个unstage别名:

$ git config --global alias.unstage ‘reset HEAD’

$ git unstage test.py 实际上Git执行的是:
$ git reset HEAD test.py

配置一个git last,让其显示最后一次提交信息:

$ git config --global alias.last ‘log -1’

统领的命令有:

初始化一个Git仓库,当前目录下多了一个.git的目录,如果没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。

$ git init

查看 git 文件跟踪状态,会告诉工作区(红色)和暂存区(绿色)的情况

$ git status

查看修改的具体内容 被修改(红色)和修改为(绿色)

$ git diff

查看工作区和版本库里面最新版本的区别

用git diff HEAD – filename

查看目前分支的commited时刻记录–时间线

$ git log --pretty=oneline

查看目前分支的所有commited时刻记录,记录你的每一次命令

$ git reflog

某分支的回退某个commited时刻

回退到上一commited时刻
$ git reset --hard HEAD~1

回退到commit_id对应的commited时刻
git reset --hard commit_id

工作区和暂存区

请添加图片描述

前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把 文件修改 添加到 暂存区

第二步是用git commit提交更改,实际上就是把 暂存区的所有内容 提交到 当前分支

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性 提交暂存区的所有修改。
请添加图片描述

丢弃工作区的修改:

$ git checkout – filename
注意:命令中的 –很重要,没有–,就变成了“切换到另一个分支”的命令。git checkout其实是用版本库里的版本替换作区的版本,无论工作区是修改还是删除,都可以“ 一键还原

暂存区的修改撤销掉(unstage),重新放回工作区

$ git reset HEAD filename
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

删除文件:

$ git rm filename

git 操作各个区交互的命令
干净的工作区 working directory
增(mkdir、)删(rm)改文件 《——》 git restore filename
工作区 暗红标识 Changes not staged for commit:
git add filename 《——》 git restore --stage filename
暂存区 绿色标识 Changes to be committed:
git commit -m “描述当前快照” 《——》 git reset --hard HEAD~1
当前分支
git reflog(查看所有历史操作列表)或git log --pretty=oneline(查看当前版本列表) && git reset --hard (commit_id(7位)某个或者HEAD~n)上n次的版本
当前分支其他版本
git checkout -b branchname && git checkout branchname && git merge --no-ff -m “描述文字” branchname && git checkout -d branchname
某分支
git tag && git tag -a vxx.xxx.xx -m “version 0.1 released” commit_id 《——》 git tag -d v0.1
创建tag,标签也是版本库的一个快照
git push origin v1.0 && git push origin --tags 《——》 git push origin :refs/tags/v0.9
远程分支
git pull origin origin/branchname 《——》 git push origin origin/branchname
当前分支
git merge --no-ff -m “描述文字” branchname加上–no-ff参数就可以用普通模式合并,合并后有合并操作记录,而fast forward模式没有记录并。
其他分支
git stash&&然后去建分支修复BUG《——》修复BUG后,切回拥有stash 的分支,操作 git stash list && git stash apply stash@{0} 恢复,git stash pop 删除对应恢复的储存
stash功能
请添加图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HvPuiI11-1646987846124)(./git.png)]

我们根据GitHub的提示,在本地的learngit仓库下运行命令:

$ git remote add origin git@github.com:michaelliao/learngit.git

$ git push -u origin master

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令–$ git push origin master

使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。

$ git remote -v显示更详细的信息:

推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:

$ git push origin master

必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支:

$ git checkout -b dev origin/dev

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。

每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。

$ git log --graph --pretty=oneline --abbrev-commit

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值