hzzzzzzzq / Blog

这是我记录博客的地方,希望能多写一些技术博客,JS、ES、React、Vue等
14 stars 0 forks source link

Git 系列 - 1. git 命令 #15

Open hzzzzzzzq opened 2 years ago

hzzzzzzzq commented 2 years ago

git 常用命令

新建代码库

可以在自己目录下创建一个新的 git 仓库,也可以从远端服务器克隆一个仓库到本地。

git init
# name 表示 新建目录名
git init [name]
# url - 拷贝仓库的地址
git clone url

添加和删除文件

就是将你有改动的文件,添加或删除到本地的暂存区。

# filename - 文件位置
# 添加文件
git add [filename] [filename] ...

# 添加指定目录到暂存区
git add [dir]

# 添加所有文件到暂存区
git add .
# 删除文件
git rm [filename] [filename] ...

代码提交

提交就是将代码提交到本地仓库区,并不会直接提交到远端服务器。提交代码也是推送的前提,有提交才会有推送。

# 提交暂存区到仓库区
git commit -m "代码提交信息"

# 提交暂存区的指定文件
git commit [filename] [filename] ... -m "代码提交信息"

# 用新的 commit 替换上一次提交
# 如果内容无任何变化,用来改写上一次 commit 的提交信息
git commit --amend -m "新提交信息"

推送改动

推送,就是用来,将你的本地代码推送到远端服务器,在远端保存。

# branch - 想推送的分支
git push [origin] [branch]

分支

分支是用来将特性开发绝缘开来。在创建一个仓库的时候, master默认的分支,我们可以作为主分支,在其他分支上完成相对应的功能后,再将分支合并到主分支 master 上。可以有效的对项目进行管理,降低出错概率。

image

# 创建一个叫做 ‘feat-new’ 的分支,并切换过去
git checkout -b feat-new

# 切换回主分支
git checkout master

# 删除新建分支
git branch -d feat-new

# 推送本地创建的分支到远端仓库,让他人可见
git push origin feat-new

更新与合并

更新本地仓库,以及将本地数据合并到 master ,获取 (fetch) 并合并 (merge) 远端的改动。

# 更新本地代码
git pull

# 合并其他分支到当前分支
git merge [branch]

当然,不是每一次的合并都是顺利的,可能会出现冲突,这时候,就需要手动去修改冲突文件并合并冲突。

# 添加 冲突文件,标记为合并成功
git add [filename] [filename] ...

# 合并之前,可以使用该命令预览差异
git diff [source_branch] [target_branch]

标签

在开发过程中,是需要标签的,来标记软件发布情况。

# 打标签
# tagID 是标记的提交ID,需要具有唯一性。
git tag 1.0.0 [tagID]

# 获取提交 ID,查看本地仓库的历史记录
git log

# 可以添加参数来修改输出
# 只看某个人的记录
git log --author=hzzzzzzzq

# 每条提交记录只占一行的输出(压缩之后
git log --pretty=oneline

# 查看哪些文件有变动
git log --name-status

# 如果这些不够使用,可以查看更多的 git log 信息
git log --help

回退

有时候,可能在 commit 时,发现有错误,或者在 push 时,发现 commit log 信息错误,不允许提交(当然这是在公司项目配置的情况下才会发生),我们就需要对提交进行回退,去修改错误或者修改 commit log 信息。

当然,还有命令时是用于版本回退的。

# 回退信息 - 回退一次,数字表示回退次数
git reset HEAD~1

# 获取服务器上最新的版本历史,并让本地分支指向它
git fetch origin
git reset --hard origin/master