测试开发基础之Git使用

68 阅读4分钟

image.png

Git使用是每个程序员必不可少的技能,因此在最开始我们就打好基础,详细学习一下Git吧!

定义

分布式版本控制系统

无中央服务器

Bazaar

BitKeeper

GIT

工作区(Working Directory)

image.png

版本库(Repository)

工作区中有个隐藏目录.git

暂存区(stage)

Git为我们创建的第一个分支master

指向master的一个指针HEAD

image.png

集中式版本控制系统

版本库(仓库)集中存放在中央服务器

SVN

VSS

CSV

git仓库与远程仓库

与远程仓库建立连接

git remote add origin

远程仓库链接提交代码到远程仓库

git push origin 分支

第一次:git push -u origin master

删除远程库

git remote rm

查看远程库信息

git remote/git remote -v查看更详细的信息

从远程库克隆

git clone + 远程仓库的地址

从远程仓库拉取最新的代码并自动合并到当前分支

git pull = git fetch + git merge git pull --rebase = git fetch + git rebase

常用命令

初始化仓库

git init

添加文件到Git仓库

1.git add 可以多次添加后再commit

2.git commit -m

查看当前仓库的状态

git status

查看修改的内容

git diff:比较工作区和暂存区,暂存区为空时,比较的就是工作区和仓库,因此和git diff HEAD相同

git diff HEAD:比较工作区和仓库

git diff --cached:比较暂存区和仓库

查看Git提交历史的命令

git log

--oneline:以一行的方式显示每个提交的简洁信息

--graph:以图形化的方式显示提交历史,展示分支和合并操作

--decorate:显示分支和标签指向的提交

--author=<作者>:只显示指定作者的提交记录

--since=<日期>:只显示指定日期之后的提交记录

--until=<日期>:只显示指定日期之前的提交记录

回退到上个版本

git reset --hard HEAD^

git reset HEAD~2 向上两个

git reset HEAD^ 向上1个

回退到某个版本后,再前进到未来版本

git reset --hard 版本号

查看命令历史,以确定到哪一个版本

git reflog

image.png

撤销文件在工作区中的修改(其实是用版本库里的版本替换工作区的版本)

git checkout -- file

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

  2. 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态

修改文件并提交到暂存区,丢弃修改

1.git reset HEAD 把修改文件移出暂存区

2.git checkout -- file撤销工作区修改

创建并切换到该分支

git checkout -b 分支

git branch 分支 + git checkout 分支

git switch -c dev

查看当前分支

git branch

合并指定分支到当前分支

git merge 指定分支

git merge --no-ff 指定分支 表示禁用Fast forward合并

git rebase

优点:合并后有漂亮的提交记录 缺点:细枝末节的提交记录不清晰

删除某个分支

git branch -d 分支

丢弃一个没有被合并的分支(强制删除分支):git branch-D 分支名称

切换到已有分支

git checkout 分支

git switch 分支

查看分支合并图

git log --graph

储藏当场工作,恢复后继续工作

git stash

查看储藏列表

git stash list

恢复储藏内容

恢复stash的内容但stash中的内容未删除:git stash apply

删除stash中的内容:git stash drop

恢复并删除stash中的内容:git stash pop

多次stash,恢复指定的stash

git stash apply stash@{0}

丢弃没有被合并过的分支,强行删除分支

git branch -D

从其他分支选择任意一个或者几个或者一段提交,合并到HEAD所指定的位置

git cherry-pick

从远程仓库中拉去最新代码到当前分支但不合并

git fetch

在本地创建和远程分支对应的分支

git checkout -b branch-name origin/branch-name

建立本地分支和远程分支的链接关系

git branch --set-upstream-to origin/

撤销更改,会创建一个新的commit来撤销指定的更改,撤销更改时应逆序

git revert (一般用于远程更改):

git revert HEAD^ 向上1个

对提交记录作个排序

git rebase -i HEAD~n

标签管理

新建标签

git tag ,默认为HEAD,也可以指定一个commit id

查看所有标签

git tag

删除标签

git tag -d 标签名

推送标签到远程

git push origin

一次性推送全部尚未推送到远程的本地标签

git push origin --tags

删除远程标签

1.从本地删除:git tag -d 标签名 2.从远程删除:git push origin :refs/tags/标签

显示指定提交或文件的详细信息

git show