在代码远程版本控制和提交过程中需要经常使用git命令,熟练使用git是一个软件工程师必备的技能之一。
将主版本代码fork到自己的 bitbucket 子仓库中
克隆到本地
利用ssh链接进行克隆,将 fork 的子仓库克隆到本地。
git clone ssh://{$你fork的子bitbucket仓库git链接$}
添加远程主仓库
虽然我们fork了主仓库的代码到自己的子仓库,但这种fork会无形中造成自己本地的代码与远程主仓库之间发生隔离,无法实现最新的同步。我们使用下面的指令在本地子仓库中添加远程主仓库的连接,并命名为upstream(这个名称是一个通识做法)。这样我们就可以通过upstream
这个简短的名称来引用这个远程仓库,进行如拉取(pull)、推送(push)等操作。
git remote add upstream ssh://{$bitbucket主仓库的git链接$}
之后我们可以使用下面的命令来查看当前 Git 仓库中配置的远程仓库详细信息。
git remote -v
返回的结果可能有如下结构:
origin ssh://git@example.com:7999/user/repo.git (fetch)
origin ssh://git@example.com:7999/user/repo.git (push)
upstream https://github.com/original/repo.git (fetch)
upstream https://github.com/original/repo.git (push)
origin
和 upstream
是两个远程仓库的名称,每个仓库都有对应的获取和推送 URL。通常情况下,获取和推送的 URL 是相同的,但在某些配置中,它们可能不同。这个命令帮助你确认你的远程仓库设置是否正确,以及你正在与哪个仓库进行交互。
确定分支
在完成与远程仓库的连接后,我们可以开始在本地修改自己的代码了,但首先应该确定自己要修改的分支,以及当前本地代码处于哪个分支中。
git branch
代码同步(当commit历史杂乱时使用)
在你克隆代码的同时,也许某个同事又提交了一次代码并且已经迅速合并到了原始主代码中,那么这样你克隆的代码就不是最新的了,为此,应当与这个最新的提交进行同步,或者说通过重置操作将代码与这个最新的代码进行合并。或者,由于之前你的某些提交,使得当前克隆下来的子仓库中有多个commit提交记录(可通过git log命令查看)。
我们在主仓库的commit中复制最新的一次commit的哈希值,并使用下面的命令
git reset {$主仓库最新的一次提交的哈希值$}
这样就可以是的当前子仓库的commit历史保持简洁,否则push后有可能会因存在多个commit提交历史而导致审查不通过。
代码修改
经过以上配置之后,我们开始修改代码。在修改过后,我们按照如下步骤依次执行
#确定一下当前代码的状态
git status
#查看有哪些地方做了修改
git diff
#将修改的文件提交到暂存区
git add {$你修改的文件的路径,可以是绝对路径也可以是相对路径$}
#提交信息
git commit -m "...a fix code ..."
#代码推送
git push -f
🎶 需要注意的是,如果之前已经提交过一个commit,现在是在原基础上继续修改,那么就要使用amend
命令
git commit --amend -s
这个命令用于修改最近一次提交,并在提交信息中添加 “Signed-off-by” 行。这样就可以在原提交基础上继续提交,而不会产生额外的commit信息。