分布式版本控制工具---Git


本文简单记录个人学习 git 时用到的各种命令及作用。

不知道在哪下载的小伙伴可以直接传送门 https://git-scm.com/

下载安装好 git 后,鼠标点击右键菜单会新增两个选项(安装Git的时候设置的)
在这里插入图片描述


git init 项目创建

随便找个盘(D,E,F,G啥的)新建文件夹,进入文件夹,然后先鼠标右键菜单 Git Bash ,最后执行命令(git init)。
这时我们已经创建好了一个本地仓库,实质上是在当前目录创建了 .git 文件夹 (它是隐藏的,怎么显示隐藏文件夹自行百度)。

//项目创建命令
git init  

进入 .git 文件夹后,会出现以下目录
在这里插入图片描述

git clone 远端对象拉取到本地

将远端创建的对象拉取到本地,将HEAD指向拉取的分支。

//默认在当前目录下创建和版本库名相同的文件夹并下载版本到该文件夹下
git clone <远程仓库的网址>

//指定本地仓库的目录
git clone <远程仓库的网址> <本地目录>

//-b 指定要克隆的分支,默认是master分支
git clone <远程仓库的网址> -b <分支名称> <本地目录>

在这里插入图片描述

git add 将文件添加到暂存区

为文件创建对象,通过git update-index将文件及对象hash写入index文件中。

//把指定的文件添加到暂存区中
git add <文件路径>

//添加所有修改、已删除的文件到暂存区中
git add -u [<文件路径>]
git add --update [<文件路径>]

//添加所有修改、已删除、新增的文件到暂存区中,省略 <文件路径> 即为当前目录
git add -A [<文件路径>]
git add --all [<文件路径>]

//查看所有修改、已删除但没有提交的文件,进入一个子命令系统
git add -i [<文件路径>]
git add --interactive [<文件路径>]

git commit 将暂存区文件提交到本地仓库

将.git/index文件中记录的变更(增删改)文件通过git write-tree生成树对象(并不一定是树对象,只是举例),通过git commit-tree创建一个commit指向些树对象,修改分支引用指向此commit对象。

//把暂存区中的文件提交到本地仓库,调用文本编辑器输入该次提交的描述信息
git commit

//把暂存区中的文件提交到本地仓库中并添加描述信息
git commit -m "<提交的描述信息>"

//把所有修改、已删除的文件提交到本地仓库中, 不包括未被版本库跟踪的文件,等同于先调用了 "git add -u"
git commit -a -m "<提交的描述信息>"

//修改上次提交的描述信息
git commit --amend

git push 将本地对象提交到服务端

通过引用规范,将本的分支引用推送至远端服务端的分支引用内,服务端的HEAD永远指向master分支。

//把本地仓库的分支推送到远程仓库的指定分支
git push <远程仓库的别名> <本地分支名>:<远程分支名>

//删除指定的远程仓库的分支
git push <远程仓库的别名> :<远程分支名>
git push <远程仓库的别名> --delete <远程分支名>

git pull 拉取服务端对象

将服务端的领先于本地仓库的commit对象及引用对象拉取到本地,同时根据引用规范更新.git/refs/remotes/分支,对本地分支及.git/refs/remotes/分支进行git merge操作。
通俗点说就是,该命令能够将服务端的最新版本合并到本地分支。

//从远程仓库获取最新版本。
git pull

git branch 创建分支

创建分支,在 .git/refs/heads 创建一个目录,保存当前HEAD引用的分支的commit hash

//列出本地的所有分支,当前所在分支以 "*" 标出
git branch

//列出本地的所有分支并显示最后一次提交,当前所在分支以 "*" 标出
git branch -v

//创建新分支,新的分支基于上一次提交建立
git branch <分支名>

//修改分支名称
//如果不指定原分支名称则为当前所在分支
git branch -m [<原分支名称>] <新的分支名称>

//强制修改分支名称
git branch -M [<原分支名称>] <新的分支名称>

//删除指定的本地分支
git branch -d <分支名称>

//强制删除指定的本地分支
git branch -D <分支名称>

在这里插入图片描述

git checkout 切换分支

切换分支,将HEAD的内容改为指定的分支路径,同时也可以将HEAD指向某个commit,但会引起问题,简单的来说checkout就是修改HEAD的指向

//切换到已存在的指定分支
git checkout <分支名称>

//创建并切换到指定的分支,保留所有的提交记录
//等同于 "git branch" 和 "git checkout" 两个命令合并
git checkout -b <分支名称>

//创建并切换到指定的分支,删除所有的提交记录
git checkout --orphan <分支名称>

//替换掉本地的改动,新增的文件和已经添加到暂存区的内容不受影响
git checkout <文件路径>

在这里插入图片描述

git merge 合并分支

将分支上分叉的commit与当前分支指向的commit进行合并,并生成一个新的commit, 将当前分支指向此commit

//把指定的分支合并到当前所在的分支下
git merge <分支名称>

在这里插入图片描述

git reset 还原提交记录

修改分支指向的commit,这也是它和checkout的区别,reset是通过修改分支来改变HEAD的指向,而checkout是直接修改HEAD的指向。

//重置暂存区,但文件不受影响
//相当于将用 "git add" 命令更新到暂存区的内容撤出暂存区,可以指定文件
git reset [<文件路径>]
git reset --mixed [<文件路径>]

//将 HEAD 的指向改变,撤销到指定的提交记录,文件未修改
git reset <commit ID>
git reset --mixed <commit ID>

//将 HEAD 的指向改变,撤销到指定的提交记录,文件未修改
//相当于调用 "git reset --mixed" 命令后又做了一次 "git add"
git reset --soft <commit ID>

//将 HEAD 的指向改变,撤销到指定的提交记录,文件也修改了
git reset --hard <commit ID>

在这里插入图片描述

git 项目完全迁移,包括所有分支、标签、日志。

先下载要迁移的项目,成功后会生成 xxx.git 文件夹。
然后进入这个文件夹。
之后 执行第三行命令 (此时已保存在本地仓库中)
最后push到新的git仓库

代码如下:

git clone --mirror  git@xxx.in.xxx.com:xxx/xxx.git
cd  xxx.git
git remote  set-url origin  git@xxx.in.xxx.com:xxx/xxx.git
git push -f origin

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值