版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1388490
git 是常见的版本控制软件。
但是如果不经常使用的话,就会忘记一些基本的命令操作。
本文的目的也是对常见的命令做一个备忘,同时希望可以帮助到大家。
mkdir testone
cd testone
git init
会出现以下结果
Initialized empty Git repository in /home/xxx/excirsises/testone/.git/
当前目录下会创建 .git 目录,git 的版本文件就保存在里面。
touch readme.md
git add readme.md
git commit -m 'just for test'
git config --global user.email 'xxx@xxx.com'
git config --global user.name 'frank909'
git clone ssh://xxx@xxx.xx.xxx.xx/~/xxx/testone
从远程仓库克隆到本地
git branch
# 查看本地和远程的分支情况
git branch -a
# 创建名为 dev 的分支
git branch dev
# 从当前分支切换到 dev
git checkout dev
git checkout -b hot-fix
在当前分支上创建分支 hot-fix,并切换到 hot-fix
git branch -d hot-fix
注意的是,如果你当前在 hot-fix 分支上,要先切换到其他分支,才能删除 hot-fix 分支。
# 提交本地的 dev 分支到远程仓库 origin 的 dev 分支
git push origin dev:dev
# 提交本地的 dev 分支到远程仓库 origin 的 remotetest 分支
git push origin dev:remotetest
# 删除远程仓库的 remotetest 分支,本地的不收影响
git push origin :remotetest
git pull
完整命令其实是
git pull <remote> <branch>
# 比如将远程 origin 仓库的 testpull 分支拉取下来
git pull origin testpull
git branch --set-upstream-to=origin/<branch> dev
# 本地的 dev 分支和远程的 origin/dev 分支关联后,可以直接使用 git pull
git branch --set-upstream-to=origin/dev dev
# 将test合并到当前分支上
git merge test
有时候向在远程仓库的基础上,拉取特定的某一个分支,命令如下
# localtest 是本地分支, origin/dev 是远程的 dev 分支
git checkout -b localtest origin/dev
git fetch 和 git pull 很像,但 git fetch 要柔和一点,git pull 会将远程的命令拉下来直接和本地的合并。
git fetch 会先获取信息,但不合并。
git fetch origin dev
# 比较本地版本和远程版本
git log -p dev origin/dev
# 合并远程 dev 版本
git merge origin/dev
也可以这样操作
# 将远程 dev 分支拉取下来,并同步到 newtest 分支上,如果 newtest 分支不存在则创建,但不会切换
git fetch origin dev:newtest