Git 常用命令实战记录

git 命令众多,本文只记录了一些本人在实际开发中使用频次很高的一些命令和它们的使用场景。

假设现有一个新项目。
SSH 地址: git://github.com/username/project_example.git

一、 复制项目
1. clone 项目
$ git clone git://github.com/username/project_example.git

本地目录会出现 project_example 文件夹。

$ cd project_example

cd 命令进入此文件夹,可执行安装依赖,运行项目等操作。

2.创建本地仓库,git remote add 命令
$ git init project_example

或者本地已经存在 project_example 文件夹,在此目录中执行 git init 命令

注意: 本地的文件夹 project_example 可以不和仓库但名字一样,但最好保持一致。

$ cd project_example
$ git init

这样存在了一个本地仓库 project_example

接下来要执行 git remote add 命令

$ git remote add origin git://github.com/username/project_example.git

此命令使本地仓库与远程仓库建立关联。

但此时本目录还是一个空文件夹,需要执行下面操作

$ git fetch --all && git reset --hard origin/master 

这两个命令按顺序执行,强制覆盖本地仓库。

二、远程代码强制覆盖本地代码

刚才用到了 git fetch --allgit reset --hard origin/master 作用是强制覆盖本地仓库。

git fetch --all 命令的作用是从远程获取最新版本到本地,不会自动合并。

git reset --hard origin/master 命令使本地代码回退到远程的版本,会看到类似 HEAD is now at <commitHash> <commitMessage> 这样的提示,表示 HEAD 已经到了远程最新的一次提交。

git fetch --allgit reset --hard origin/master 通常结合起来使用,场景除了 clone 一个远程项目到本地,还有一种场景就是合并本地分支时出现冲突,在保证远程代码正确的情况下,使用这两个命令完全复制远程代码,用来解决本地冲突。

三、分支

实际开发中通常需要三个分支

  • 开发环境: dev
  • 测试环境: test
  • 生产环境: 默认把 master 当作生产环境
1. 创建分支

master 是Git版本管理工具提供的默认分支,要创建本地分支需要用到 git branch <branch-name> 命令

$ git branch dev

此时创建 dev 分支成功。用 git branch --all 命令查看本地分支有哪些:

  dev
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

可看到本地已经出现了 dev 分支,星号 * 指向当前是 master 分支。

2. 切换分支

git checkout <branch-name> 命令切换分支

$ git checkout dev

此时切换到 dev 分支。

git branch --all 命令查看

* dev
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

当前在 dev 分支。

也可以使用 git checkout -b <branch-name> 命令创建并切换到新分支。

$ git checkout -b dev
3. 提交分支到远程

git push origin <branch-name> 命令用于提交分支到远程。

git push origin dev

本地创建了 dev 分支,远程并没有,所以此命令把 dev 分支推到远程。创建和提交 test 分支的过程同 dev 分支。

四、提交与合并
1. 提交

我们在 dev 分支开发,通常的提交步骤是:

$ git pull
$ git add .
$ git commit -m "commit message"
$ git push
  • 一定要先 git pull,不然本地代码会冲突。
  • git add . 添加文件到暂存区。
  • git commit - 将暂存区内容添加到仓库中。
  • git push上传远程代码并合并。
2. 合并

需要把 dev 分支(开发环境)代码合并到 test 分支(测试环境)

git merge <branch-name> 命令将当前所在的分支和 合并 ,简单将指针向前推进 fast-forward

$ git checkout test
$ git pull
$ git merge dev
  • 如果当前正在 dev 分支,需要先切换到 test 分支
  • git pull 命令先执行是考虑到多人开发的场景,有可能别人提交过 test 分支的代码。
  • git merge dev 命令将 test 分支和 dev 分支合并,将指针向前推进 fast-forward

注意:按上面命令合并后,有冲突的文件会以未合并状态 unmerged 标识出来,通过使用 git status 命令查看,然后手动解决,解决后用 git add 标示已解决。

四、git cherry-pick

最后要介绍一下 git cherry-pick 命令,这是最近使用过的命令。

git cherry-pick <commitHash> 命令将指定的某次提交(commitHash)合并到当前分支。

这样的合并只把某次提交的代码合并到当前分支,其他次提交的内容不会合并。

我遇到的场景大概是这样的:

  • dev 分支包括了项目所有功能,比如模块A模块B,这两个 模块 之外的其他内容称为 公共内容
  • 现在生产环境除了 master 分支(包括模块A模块B),还有masterA 分支(只包括模块A)和 masterB 分支(只包括模块B)。
  • 现在需求是改一部分 公共内容,并把这次修改提交合并到masterA 分支。

过程大概是这样:

dev 分支修改 公共内容 并提交了代码 假设这次提交的 <commitHash>b1359ab1,需要执行的命令是:

$ git checkout masterA
$ git cherry-pick b1359ab1
  • 先切换到 masterA 分支
  • 执行 cherry-pick 命令

如此只把 dev 分支的 b1359ab1 那次提交内容合并到了 masterA 分支。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Git常用命令大全: Git是现代化的版本控制系统,常被用于软件开发,协作和管理。它允许在开发过程中创建和管理不同的版本,跟踪文件的更改,以及支持团队合作。Python则是一种广泛应用于开发Web应用程序以及数据科学和人工智能领域的高级编程语言。在使用Git时,Python的代码可以与Git进行集成。这里是Python Git常用命令的大全: 1. git init:初始化一个新的 Git 仓库。 2. git clone:从现有的 Git 仓库克隆项目,可以是本地仓库或远端仓库。 3. git add:将文件添加到 Git 仓库中。git add . 可以添加所有更改。 4. git commit:将所有已添加的文件提交到本地 Git 仓库中。 5. git status:查看当前工作目录中 Git 仓库的状态。 6. git log:查看提交记录。 7. git push:将本地 Git 仓库的更改推送到远端仓库。 8. git pull:将远端 Git 仓库的更改拉到本地仓库。 9. git branch:创建新的分支。 10. git checkout:切换分支。 11. git merge:将一个分支的更改合并到另一个分支。 12. git revert:撤销一个提交。 13. git rebase:将一个分支的修改合并到当前分支。 14. git config:配置 Git。 15. git remote:管理远端仓库。 这是Python Git常用命令的大部分命令,但这并不是全部。在使用Git和Python时,这些命令应该是最为重要的。无论是在个人项目中还是团队合作中,这些命令会让你更加高效地使用Git,并保护你的代码免遭不可挽回地灾难。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值