git简单提交代码过程


原文:https://blog.csdn.net/qq_37577660/article/details/78565899 

简单的代码提交流程
git status 查看工作区代码相对于暂存区的差别
git add . 将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录
git commit -m ‘注释’ 将缓存区内容添加到本地仓库
git push origin master 将本地版本库推送到远程服务器, 
origin是远程主机,master表示是远程服务器上的master分支,分支名是可以修改的


Git add
 git add [参数] <路径> 作用就是将我们需要提交的代码从工作区添加到暂存区,就是告诉git系统,我们要提交哪些文件,之后就可以使用git commit命令进行提交了。 
 为了方便下面都用 . 来标识路径, . 表示当前目录,路径可以修改,下列操作的作用范围都在版本库之内。

git add . 
不加参数默认为将修改操作的文件和未跟踪新添加的文件添加到git系统的暂存区,注意不包括删除
git add -u . 
-u 表示将已跟踪文件中的修改和删除的文件添加到暂存区,不包括新增加的文件,注意这些被删除的文件被加入到暂存区再被提交并推送到服务器的版本库之后这个文件就会从git系统中消失了。
git add -A . 
-A 表示将所有的已跟踪的文件的修改与删除和新增的未跟踪的文件都添加到暂存区。


Git commit
 git commit 主要是将暂存区里的改动给提交到本地的版本库。每次使用git commit 命令我们都会在本地版本库生成一个40位的哈希值,这个哈希值也叫commit-id, 
 commit-id 在版本回退的时候是非常有用的,它相当于一个快照,可以在未来的任何时候通过与git reset的组合命令回到这里.

git commit -m ‘message’ 
-m 参数表示可以直接输入后面的“message”,如果不加 -m参数,那么是不能直接输入message的,而是会调用一个编辑器一般是vim来让你输入这个message, 
message即是我们用来简要说明这次提交的语句。
git commit -am ‘message’ -am等同于-a -m 
-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区, 
注意: 新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。


Git push
 在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了,如果不清楚版本库的构成,可以查看我的另一篇,git 仓库的基本结构。 
 git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名> ,例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名。第一个master是本地分支名,第二个master是远程分支名。

git push origin master 
如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建
git push origin :refs/for/master 
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin –delete master
git push origin 
如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支
git push 
如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,可以使用git branch -r ,查看远程的分支名

关于 refs/for: 
refs/for 的意义在于我们提交代码到服务器之后是需要经过code review 之后才能进行merge的,而refs/heads 不需要

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端项目在进行Git提交代码的时候,常常需要对依赖包做一定的过滤处理,主要是为了保护项目的稳定性和安全性。这里提供一种常见的做法: ### 过滤策略 #### 1. 使用`.gitignore`文件 `.gitignore` 文件是一个文本文件,通常位于项目的根目录下,用于指定 Git 应该忽略的文件或目录。对于前端项目而言,在 `.gitignore` 中加入对特定依赖包或版本库路径的过滤非常重要。 例如,你可以添加以下内容到 `.gitignore` 文件中,以防止将某些不必要的依赖包或临时文件提交到仓库: ```bash node_modules/ npm-debug.log yarn-error.log ``` 这将告诉 Git 忽略 `node_modules` 目录下的所有文件、`npm-debug.log` 和 `yarn-error.log` 文件,避免它们在每次提交时都出现在提交记录中。 #### 2. 使用脚本自动清理并提交代码 在开发过程中,可以编写一个自动化脚本来帮助清理并提交代码。这样的脚本可以在项目构建流程中运行,比如在使用如 Webpack 或 Rollup 等构建工具时,通过配置 `postbuild` 或 `precommit` 脚本来处理依赖文件。 例如,下面是一个简单的 Node.js 脚本示例,它从 `package.json` 中提取依赖项,并将其包含在一个单独的文件中,以便于只提交实际修改的部分代码: ```javascript const fs = require('fs'); const path = require('path'); // 获取 package.json 文件的路径 const pkgPath = path.join(__dirname, '../package.json'); // 读取 package.json 文件 const pkg = JSON.parse(fs.readFileSync(pkgPath)); // 避免直接操作 package.json 的内容,创建一个新的文件来存放依赖信息 const dependenciesFile = 'dependencies.txt'; // 清理旧的依赖文件(如果存在) if (fs.existsSync(dependenciesFile)) { fs.unlinkSync(dependenciesFile); } // 打开新的依赖文件并写入依赖信息 fs.writeFileSync( dependenciesFile, Object.entries(pkg.dependencies || {}).map(([key, version]) => `${key}@${version}`).join('\n') ); // 提交更改至 git process.stdin.resume(); process.stdin.setEncoding('utf8'); let input = ''; process.stdin.on('data', chunk => { input += chunk; }); process.stdin.on('end', () => { // 在这里输入 commit message 和 push 指令 console.log(`当前待提交的信息为: ${input}`); process.exit(0); }); console.log(`已创建依赖文件: ${dependenciesFile}`); ``` ### 实施步骤 1. **设置 `.gitignore`**:按照上述建议设置 `.gitignore` 文件。 2. **编写自动化脚本**:根据团队的具体需求和项目结构,编写对应的自动化脚本。这个脚本应该在项目构建或提交前运行,负责清理不需要提交的文件,并生成包含依赖信息的新文件供后续提交。 3. **集成到 CI/CD 流程**:将此自动化脚本集成到持续集成/持续部署(CI/CD)流程中,确保每次提交或部署时都有相应的检查和清理过程。 4. **培训团队成员**:确保整个团队了解这一实践的重要性及其工作原理,以及如何正确地使用 `.gitignore` 和自动化脚本。 通过以上步骤,可以有效地管理前端项目中依赖包的提交流程,提高代码库的质量和维护效率。---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值