git 入门学习摘要笔记


git 用 C语言 开发,最早Git是在Linux上开发的。可以安装在现代各个系统上(Linux、macOS、Solaris、Windows、Raspberry Pi等)。

git - 分布式版本管理系统。

git管理的是修改,并非文件。

所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。
图片、视频这些二进制文件,版本控制系统只能跟踪文件大小的变化,不能跟踪其内容的变化。

Microsoft的Word格式是二进制格式。
千万不要使用Windows自带的记事本编辑任何文本文件。

集中式版本控制系统最大的毛病就是必须联网才能工作,且若中央服务器故障,所有人都没法干活了。

使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。

.git目录默认是隐藏的,用 ls -ah 命令就可以看见。

初始化 Git 仓库

git init

当前目录下使用 git init 命令初始化一个Git仓库。

添加文件到Git仓库

分两步:

git add

第一步,用命令git add告诉Git,把文件添加到仓库。

实际上就是把文件修改添加到暂存区。

git commit

第二步,用命令 git commit 告诉Git,把文件提交到仓库。

实际上就是把暂存区的所有内容提交到当前分支。如果修改后不 git add 先把它放到暂存区,使用 git commit 不会起作用。

-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

commit可以一次提交很多文件,文件之间用空格表示即可。

查看仓库当前状态

git status

运行 git status 命令看看结果,时刻掌握仓库当前状态。

nothing to commit, working tree clean告诉我们当前没有要提交的修改工作目录是干净的。

查看文件修改内容

git diff

运行 git diff 命令查看文件修改的内容。

查看历史提交纪录

git log

运行 git log 命令查看历史纪录,显示从最近到最远的提交日志,以便确定要回退到哪个版本。

查看命令历史

git reflog

运行 git reflog 命令查看命令历史,以便确定要回到未来的哪个版本。

版本回退

HEAD指向的版本就是当前版本。

HEAD^ 回到当前版本的上一个版本;
HEAD^^回到当前版本的上上一个版本;
HEAD~n回到当前版本的上n个版本。

git reset

使用命令 git reset --hard 版本号前几位即可回到历史版本。

丢弃工作区的修改

使用命令 git checkout – file 可以丢弃工作区的修改。

一种是file自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是file已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次 git commit 或 git add 时的状态。

– 这个符号很重要,没有这个符号就变成“切换到另一个分支”的命令了。

删除文件

git rm

使用命令 git rm 用于删除一个文件。

如果文件已经被提交到仓库,使用 git checkout – file 恢复文件到最新版本。

从来没有被添加到版本库就被删除的文件,是无法恢复的!

关联一个远程库

git remote add origin

使用命令 git remote add origin https://github.com/user-name/repo-name.git

远程仓库的默认名称是origin。

查看远程仓库的信息

git remote

使用命令 git remote 查看远程仓库的信息。

使用命令 git remote -v 显示更详细的信息。

把本地库的内容推送到远程

git push

使用 git push 命令把当前分支 master 推送到远程。

若远程库是空的,第一次推送master分支时,要加上 -u 参数,git push -u origin master。

Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改。

如果推送失败,先用 git pull 抓取远程的新提交。

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

克隆一个本地库

git clone

使用命令 git clone 克隆一个本地库。

Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

创建分支

git branch

使用命令 git branch <name>创建分支。

git branch 不加分支名表示列出所有分支,当前分支前面会标一个*号。

本地新建的分支如果不推送到远程,对其他人就是不可见的。

切换分支

git checkout/switch

使用命令 git checkout/switch <name>切换到其他分支。

使用命令 git checkout -b <name>创建分支并切换分支。
使用命令 git switch -c <name>创建分支并切换分支。

合并分支

git merge

先切换到主分支上。

使用命令 git merge <name> 将指定分支合并到当前分支。

删除分支

git branch -d

使用命令 git branch -d <name> 删除指定分支。

丢弃一个没有被合并过的分支,强行删除分支用 -D。

解决冲突

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

使用 git log --graph 命令可以看到分支合并图。

储存当前工作现场

git stash

使用命令 git stash 储存当前工作现场。

查看储存工作现场

git stash list

使用命令 git stash list 查看储存工作现场。

恢复工作现场

git stash apply

使用 git stash apply 恢复工作现场,但是恢复后,stash内容并不删除,你需要用git stash drop来删除。

git stash pop

使用 git stash pop 恢复工作现场,恢复的同时把stash内容也删了。

复制一个特定的提交到当前分支

git cherry-pick

使用命令 git cherry-pick 加版本号前几位复制一个特定的提交到当前分支。

创建标签

git tag

使用命令 git tag <name> 创建一个新标签。

使用命令 git tag <name> 加版本号前几位创建一个新标签。

创建的标签都只存储在本地,不会自动推送到远程。

查看所有标签

git tag

使用命令 git tag 查看所有标签。

查看标签信息

git show <tagname>

使用命令 git show <tagname> 查看标签信息。

创建带有说明的标签

例如:
$ git tag -a v0.1 -m “version 0.1 released” 1094adb

用 -a 指定标签名,-m 指定说明文字。

标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

删除标签

git tag -d <tagname>

使用命令 git tag -d <tagname> 在本地安全删除标签。

如果要删除远程的标签,先删除本地标签,再使用命令 git push origin :refs/tags/<tagname>。

推送标签到远程

git push origin --tags

使用命令 git push origin --tags 一次性推送全部尚未推送到远程的本地标签。

自定义 git

让Git显示颜色

让命令输出看起来更醒目
git config --global color.ui true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值