git add oms_ft/package/ut/vmp_tool/ 增加单独目录
git clean -dfx 删除所有未跟踪的文件和目录,-f
表示强制执行,-d
表示包括未跟踪的目录。
git add . 把所有修改的文件提交到缓冲区
git commit -m "testut" 将缓冲区修改提交到本地仓库
git push origin HEAD:refs/for/dev_Air 将本地最新提交推送到服务器gerrit代码审查
origin
:远程仓库的名称,通常是origin
。HEAD
:指向当前检出的分支的最新提交。refs/for/<branch>
:gerrit特殊的引用,用于指定目标分支进行审查。
git push origin HEAD:<branch-name> 送当前分支的最新更改到远程仓库的特定分支
git push origin 推送当前分支的最新更改到同名远程分支
git push origin <commit-hash>:<branch-name> 推送特定的提交到远程分支
根据code 审查意见,修改代码,再次提交gerrit审查
# 修改代码 git add .
git commit --amend
# 再次推送到 Gerrit git push origin HEAD:refs/for/dev_Air
拉取分支最新代码,覆盖本地代码:
git reset --hard origin/your-branch-name 重置你的本地分支,使其匹配远程分支的最新状态,所有本地的更改和提交都将被删除。
从一个分支合并到另一个分支:
git checkout 当前分支名
git merge 合并的分支
解决冲突
git reset origin/当前分支名
git status
git add
git reflog 查看历史记录
Git常用命令
Git的常用命令非常丰富,涵盖了初始化仓库、文件操作、提交、分支管理、远程仓库操作等多个方面。以下是一些常用的Git命令及其简要说明:
1)仓库初始化与克隆
git init
:在当前目录下创建一个新的Git仓库。
git clone [url]
:克隆远程仓库到本地。
2)文件操作
git add [file]
:将指定的文件添加到暂存区,准备提交。如果想提交当前目录下文件可以使用命令git add .
,全部文件使用git add *
git rm [file]
:从工作区和暂存区删除文件,并提交删除操作。
git mv [file-original] [file-renamed]
:重命名文件,并将这个改名放入暂存区。
3)提交
git commit -m "message"
:提交暂存区的文件到本地仓库,并附上一条描述本次提交的备注信息。
git commit --amend
:修改最后一次提交的备注信息或内容。
4)查看状态与差异
git status
:显示工作区和暂存区的状态。
git diff
:显示工作区与暂存区之间的差异,或者暂存区与上一个commit之间的差异。
5)分支管理
git branch
:列出本地分支,创建或删除分支。
git branch [branch-name]
:创建新分支但不切换。
git checkout [branch-name]
:切换到指定分支。
git checkout -b [branch-name]
:创建并切换到新分支。
git merge [branch-name]
:合并指定分支到当前分支。
git rebase [branch-name]
:将当前分支的提交重新应用到指定分支上。
6)远程仓库操作
git remote -v
:显示远程仓库的详细信息。
git fetch [remote-name]
:从远程仓库拉取最新变更,但不合并到本地分支。
git pull [remote-name] [branch-name]
:拉取远程分支并合并到本地分支。
git push [remote-name] [branch-name]
:将本地分支推送到远程仓库。
git push --force
:强制推送更改到远程仓库,即使有冲突。
7)标签管理
git tag
:列出所有标签。
git tag [tag-name]
:创建一个新的标签。
git show [tag-name]
:查看标签的详细信息。
git push origin --tags
:遍历你所有的本地标签,并将它们推送到指定的远程仓库。
8)其他常用命令
git log
:显示提交日志。
git show [commit-id]
:显示某次提交的详细内容。
git stash
:暂存当前工作区的修改,以便于切换到其他分支或进行其他操作。
git cherry-pick [commit-id]
:选择并应用某个提交的更改到当前分支。
git reflog
:查看所有的引用日志,包括已经被删除的提交和分支。
Git
开源的分布式版本控制系统,由林纳斯·托瓦兹(Linus Torvalds)为辅助 Linux 内核的开发而设计。它允许开发者跟踪文件的更改历史,记录谁何时进行了哪些更改,并比较和合并不同的项目版本。
功能:Git 强调速度、数据完整性和分布式工作流。它允许开发者在本地计算机上独立运行,并通过网络与其他 Git 仓库同步。
GitHub
基于 Git 的远程代码仓库托管平台,提供了代码托管、代码审查、问题跟踪、持续集成/持续部署(CI/CD)支持、社区互动等多种功能和服务。GitHub 是开源项目和私有项目最受欢迎的托管平台之一,特别是在需要社区参与和贡献的项目中。
功能:GitHub 不仅允许开发者存储和管理代码,还鼓励开发者之间的协作。通过拉取请求(Pull Requests)、问题跟踪(Issues)和 Wiki 页面等功能,GitHub 促进了开源项目的社区参与和贡献。
GitLab
开源的 Git 仓库管理工具,提供了与 GitHub 类似的功能,但允许开发者在自己的服务器上安装和运行它。GitLab 特别适合那些需要内部部署、担心数据隐私或想要完全控制自己代码仓库的企业和组织。它提供了高度可定制性和可扩展性。
功能:GitLab 包括代码托管、版本控制、问题跟踪、CI/CD 管道、Wiki、代码审查等多种功能,旨在成为一个完整的 DevOps 生命周期工具。
Gerrit,一种免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。它使用Git作为底层版本控制系统。它分支自Rietveld,作者为Google公司的Shawn Pearce,原先是为了管理Android计划而产生。
它们之间的相互关系
Git是版本控制系统的核心,提供基本的版本控制功能。
GitHub和GitLab都是基于Git的远程代码仓库托管平台,但GitHub专注于提供广泛的服务和社区支持,而GitLab则更注重可定制性和内部部署选项。
简而言之,Git是工具,GitHub是全球唯一的开源社区,GitLab支持私有部署。