天天看点

Git学习笔记Git配置命令初始化Git仓库添加文件到Git仓库提交文件到Git仓库掌握工作区的状态查看修改内容查看日志信息版本回退查看命令历史暂存区的概念撤销修改删除文件远程仓库推送至远程库仓库克隆创建分支查看当前分支合并分支删除分支查看分支合并图Fast-forward模式储藏强制删除分支查看远程库信息推送分支创建分支并关联将本地分支与远程分支相关联变基标签创建标签查看标签删除标签推送标签删除远程标签忽略特殊文件配置别名

Git学习笔记

  • Git配置命令
  • 初始化Git仓库
  • 添加文件到Git仓库
  • 提交文件到Git仓库
  • 掌握工作区的状态
  • 查看修改内容
  • 查看日志信息
  • 版本回退
  • 查看命令历史
  • 暂存区的概念
  • 撤销修改
  • 删除文件
  • 远程仓库
  • 推送至远程库
  • 仓库克隆
  • 创建分支
  • 查看当前分支
  • 合并分支
  • 删除分支
  • 查看分支合并图
  • Fast-forward模式
  • 储藏
  • 强制删除分支
  • 查看远程库信息
  • 推送分支
  • 创建分支并关联
  • 将本地分支与远程分支相关联
  • 变基
  • 标签
  • 创建标签
  • 查看标签
  • 删除标签
  • 推送标签
  • 删除远程标签
  • 忽略特殊文件
  • 配置别名

Git配置命令

git config --global user.name "Your Name"
git config --global user.email "[email protected]"
           

设置全局的名称和Email地址。

初始化Git仓库

git init
           

初始化一个Git仓库。

添加文件到Git仓库

git add <file>
           

将文件添加到Git仓库,可重复执行,并且也可以直接将

<file>

替换成

.

来将所有修改文件添加到Git仓库。

提交文件到Git仓库

git commit -m <message>
           

提交已添加的文件,其中

<message>

为提交日志信息。

掌握工作区的状态

git status
           

查看仓库当前的状态。

查看修改内容

git diff
           

查看文件的修改内容。

查看日志信息

git log --pretty=oneline
           

查看提交日志记录。

版本回退

git reset --hard HEAD^
           

回退到上一个版本。其中

HEAD

代表当前版本,

HEAD^

代表上一个版本,

HEAD^^

代表上两个版本,

HEAD~100

代表上100个版本。

git reset --hard commit_id
           

回退到指定提交id所对应的版本,其中

commit_id

不需要写全。

查看命令历史

git reflog
           

查看你执行过的每一次命令

暂存区的概念

通过

git add

命令将文件放入暂存区,通过

git commit -m "xxx"

把文件放入当前分支,此时暂存区就没东西了。

一般的工作过程都是如此,工作区→暂存区→当前分支。

撤销修改

git checkout -- <file>
           

撤销工作区的修改。总之就是让文件回到上一次

commit

或者

add

时的状态。

git reset HEAD <file>
           

撤销暂存区的修改。

删除文件

git rm <file>
           

将版本库中的文件删除。如果先将工作区的文件手动删除了,那么和

add

命令一致。

远程仓库

ssh-keygen -t rsa -C "[email protected]"
           

创建自己的SSH key,一般存在于用户主目录的

.ssh

文件夹中,里面有

id_rsa

id_rsa.pub

两个文件,这两个就是SSH Key的秘钥对,

id_rsa

是私钥,不能泄露出去,

id_rsa.pub

是公钥,可以放心地告诉任何人。

创建完自己的SSH key之后,就可以在GitHub、码云之类的远程仓库平台上添加上你的公钥,然后你就可以在该机器上进行推送了。

git remote add origin [email protected]:lxr17/learngit.git
           

将本地仓库与远程仓库相关联,其中

origin

为远程仓库的名字,也可以改成其他名字。

推送至远程库

git push -u origin master
           

把本地库

master

分支的内容推送到远程库

origin

-u

命令会把本地

master

分支和

origin

远程仓库的

master

分支关联起来,之后可以简化命令。

git push origin master
           

把本地库

master

分支的内容推送到远程库

origin

master

分支上。

仓库克隆

git clone [email protected]:lxr17/learngit.git
           

从远程克隆一个仓库到本地。

创建分支

git checkout -b dev
           

创建一条

dev

分支并切换到

dev

分支上,其中

-b

表示创建并切换。

git branch dev
           

创建一条

dev

分支。

git checkout dev
           

切换到

dev

分支上。

查看当前分支

git branch
           

查看当前分支。

合并分支

git merge dev
           

dev

分支合并到当前分支上。

Fast-forward

的意思是表示此次合并为“快进模式”,也就是直接把

master

分支指向

dev

的当前提交,所以合并速度非常快。

当git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

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

删除分支

git branch -d dev
           

删除

dev

分支。

查看分支合并图

git log --graph
           

Fast-forward模式

Fast forward

模式在删除分之后会丢掉分支信息。如果要强制禁用

Fast-forward

模式,Git就会在

merge

时生成一个新的

commit

,这样,从分支历史上就可以看出分支信息。

git merge --no-ff -m "message" dev
           

禁用

Fast forward

模式下的合并分支,将

dev

分支合并到当前分支,由于会创建一次新的

commit

,所以要加上

-m

参数。

合并分支时,加上

--no-ff

参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而

Fast forward

合并就看不出来曾经做过合并。

储藏

git stash
           

可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作。

git stash list
           

可以获取到“储藏”的工作现场。

git stash apply
           

用于恢复工作现场。

git stash drop
           

用于删除stash内容。

git stash pop
           

用于恢复工作现场的同时删除stash内容。

git stash apply [email protected]{0}
           

恢复至指定的

stash

强制删除分支

git branch -D dev
           

强制删除

dev

分支,用于丢弃一个没有被合并过的分支。

查看远程库信息

git remote -v
           

查看远程库详细信息。

git remote
           

查看远程库信息。

推送分支

git push origin dev
           

将本地的

dev

分支推送到远程库

origin

上。

当从远程库

clone

时,默认情况下会将本地的

master

分支与远程的

master

分支相关联。

创建分支并关联

git checkout -b dev origin/dev
           

创建一个本地分支

dev

,并与远程库

origin

dev

分支相关联。

将本地分支与远程分支相关联

git branch --set-upstream-to=origin/dev dev
           

将本地分支

dev

与远程库

origin

dev

分支相关联。

变基

git rebase
           

把本地未

push

的分叉提交历史整理成直线。(不是很明白)

标签

就是一个让人容易记住的有意义的名字,它跟某个

commit

绑在一起。

创建标签

git tag v1.0
           

在最新提交的

commit

上打标签。

git tag v0.9 f52cb63
           

给某次commit打标签。

git tag -a v0.1 -m "version 0.1 released" 1094adb
           

创建带有说明的标签。

查看标签

git tag
           

查看所有标签。

git show v0.9
           

查看标签的详细信息。

删除标签

git tag -d v0.1
           

用于删除某个标签。

推送标签

git push origin v1.0
           

将标签推送到远程库。

git push origin --tags
           

将本地所有标签推送到远程库。

删除远程标签

git push origin :refs/tags/v0.9
           

用于删除一个远程标签。

忽略特殊文件

在Git工作区的根目录下创建一个特殊的

.gitignore

文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

检验

.gitignore

的标准是

git status

命令是不是说

working directory clean

配置别名

git config --global alias.st status
           

告诉Git,以后用

st

代替

status