建设微网站平台,网站为什么百度搜不到了,c程序设计教学网站怎么做,做网站用什一、开始工作区 clone: 克隆一个仓库到新的目录。 git clone https://github.com/username/repository.git init: 创建一个新的空 Git 仓库或重新初始化现有的仓库,新建git项目。 //创建项目两种方式
//一、本地项目自己创建项目#xff0c;先创建好工作文件夹#xff0c;通…一、开始工作区 clone: 克隆一个仓库到新的目录。 git clone https://github.com/username/repository.git init: 创建一个新的空 Git 仓库或重新初始化现有的仓库,新建git项目。 //创建项目两种方式
//一、本地项目自己创建项目先创建好工作文件夹通过init指定生成隐藏.git文件即为管理成功
//二、多人协作本地clone下来
git init myproject
cd myproject
二、当前工作上的变更增删改 add: 增将文件内容添加到索引准备提交。 git add file.txt//添加文件从工作区到暂存区类似svn选中文件多了一步
git status//查看文件管理状态
git commit//从暂存区提交到本地仓库输入提交备注wq保存类似svn点击ok提交git commit -a//合并添加并提交两步 mv: 改移动或重命名文件、目录或符号链接。 git mv file.txt newfile.txt //改名
git commit //提交改名 restore: 恢复工作树中的文件。 git restore file.txt rm: 删从工作树和索引中删除文件。 git rm file.txt//删除文件
git commit//提交删除三、查看历史和状态 bisect: 使用二分查找来定位引入错误的提交。 git bisect start
git bisect bad
git bisect good v1.0
# 测试代码直到找到引入错误的提交
git bisect reset diff: 显示提交之间的差异提交与工作树之间的差异等。 git diff
git diff --cached
git diff HEAD~1 HEAD grep: 打印匹配模式的行。 git grep search_term log: 显示提交日志。 git log//查看提交记录
git log --oneline//每条记录一行显示
git log --authorJohn Doe//查看提交记录为john的
git log -help //查看日志常用帮助
git log -n//查看几条
git log -state //统计具体改进
git log --greptest查看提交记录中含有test的 show: 显示各种类型的对象。 git show HEAD
git show 1234abcd status: 显示工作树的状态。 git status
四、发展、标记和调整公共历史 backfill: 在部分克隆中下载缺失的对象。 git backfill branch: 列出、创建或删除分支。 git branch//列出所有分支
git branch new-feature//创建一个新的分支new-feature
git checkout new-feature//切换到新的分支
git checkout -b new-feature//合并上面两步的操作
git branch -d old-feature//删除指定分支 commit: 记录对仓库的更改。 git commit file1.name file2.name file3.name .. –m commit messages
//commit指提交修改到本地的仓库里file*.name指的是带commit的文件
//–m后面的内容指提交的信息即备注。git commit –a –m commit messeages
//添加的-a参数会把当前暂存区里所有的修改包括删除操作都提交git commit
//可能有时候手抖忘记输入-m参数直接输入了git commit于是出现了下面这个界面即打开了一个vim编辑
//界面敲入i键后保存输入要添加的message后输入“ESC”按键退出编辑界面然后再敲入“:wqa”后会保存
//message内容并且提交此次修改如果敲入“:q”会取消这次提交。git commit --amend
//把此次提交追加到上一次的commit内容里并且会回显上次的commit的内容。git commit -m Add new feature//提交及备注git commit -am Fix typo//合并commit(回退commit到指定版本重新提交一次)
reset --soft commitid//修改历史提交记录
git rebase -i 428726c//先输入rebase插入到指定提交版本
修改pick为edit
git commit --amend//修改后提交
git rebase --continue//提交后再次执行 merge: 合并两个或多个开发历史。 git merge feature-branch rebase: 在另一个基础之上重新应用提交。 git rebase main//变动根基到main reset: 将当前 HEAD 重置为指定状态。 git reset --hard HEAD~1
git reset --soft HEAD~1
git reset --mixed HEAD~1 switch: 切换分支。 git switch main
git switch -c new-feature tag: 创建、列出、删除或验证一个由 GPG 签名的标签对象。 git tag v1.0
git tag -l
git tag -d v1.0
git tag -s v1.0 -m Release version 1.0
五、协作开发命令 fetch: 从另一个仓库下载对象和引用。 git fetch //执行后更新了本地提交记录
git status//再执行此句可以看到领先落后情况
git pull//落后拉取 pull: 从另一个仓库或本地分支获取并合并。 git pull push: 更新远程引用及其关联的对象。 git commit -a//先增加到本地仓库
git push //再推送到远端仓库
注意协作开发先cloneclone输入远端仓库的账号和密码拉去成功后可以通过git config配置域
六、其他有用的命令 help -a: 列出所有可用的子命令。 git help -a help -g: 列出一些概念指南。 git help -g git config:用于配置提交者邮箱和用户名 git config --global user.name
git config --get user.name
系统级配置 (--system): 影响所有电脑用户admin和user和所有仓库适合系统管理员设置全局默认值。 全局级配置 (--global): 影响当前电脑用户(user1)的全部仓库适合用户设置个人偏好。 仓库级配置 (--local 或默认): 仅影响当前仓库适合项目团队成员设置项目特定的配置,在指定仓库指定名字提交
七、HEAD 的概念
1.指向当前分支的最新提交:
HEAD 总是指向当前分支的最新提交。
例如如果你在 main 分支上HEAD 就会指向 main 分支的最新提交。
2.动态变化:
每当你进行一次提交、切换分支、合并或变基等操作时HEAD 都会更新指向新的最新提交。
3.HEAD 的常见用法
查看当前 HEAD 指向的提交:
git show HEAD
回退到上一个提交:
git reset HEAD^ //回退一步,几个^就是回退几步
git reset --mixed HEAD^ //暂存区被重置但工作目录中的文件内容保持不变,即撤销了add和commit
git reset --soft HEAD^//暂存区和工作目录不变,所有更改仍然在暂存区中即撤销了commit。
git reset --hard HEAD^//重置暂存区和工作目录永久删除未提交的更改,即撤销了add和commit和更改内容
git reset --hard HEAD~3//回退3个记录
HEAD^ 表示 HEAD 的前一个提交。HEAD~1 也表示 HEAD 的前一个提交。
回退到前几个提交:
git reset HEAD~3
HEAD~n 表示 HEAD 的前 n 个提交。
切换到某个特定的提交:
git checkout 51363e6
使用 git checkout 命令可以切换到某个特定的提交。
创建一个新的分支并指向某个提交:
git checkout -b new-branch 51363e6
4.HEAD 的特殊用途
解决冲突:
在合并或变基过程中HEAD 指向的是当前的工作分支而 MERGE_HEAD 或 REBASE_HEAD 指向的是正在合并或变基的分支。
恢复文件:
git checkout HEAD -- path/to/file
使用 HEAD 可以恢复工作目录中某个文件的最新版本。
八、协调解决实践原则
发生冲突时拉同事一起看不要自己决定需要CR快速对比差异分支名要有意义不要反复用分支不要搭便车功能清晰且独立上线就打tag优先用merge而不是rebase否则会丢掉提交时间信息commit message要有意义事半功倍不要每2行就提交一次导致commit过多
九、commit message原则
1.AngularJS Git Commit Message 规范 type(scope):subject BLANK LINE body BLANK LINE footer
2.规范解释
字段描述示例type提交类型feat, fix, docs, style, refactor, test, chorescope变动范围authentication, user-interface, databasesubject简要描述本次变动implemented new login flow using OAuth 2.0body详细描述变更情况Several improvements made to the authentication module:br- Updated API endpoints for better security practices.br- Implemented OAuth 2.0 for user authentication.br- Added error handling for invalid credentials.br- Improved documentation for developers.footer可忽略Close #123
3.例子
feat(authentication): implemented new login flow using OAuth 2.0Several improvements made to the authentication module:
- Updated API endpoints for better security practices.
- Implemented OAuth 2.0 for user authentication.
- Added error handling for invalid credentials.
- Improved documentation for developers.
Type: feat 表示这是一个新功能的引入。Scope: (authentication) 表示这是认证模块的更改。Subject: implemented new login flow using OAuth 2.0 描述了本次提交的主要内容。Body: 列出了具体的改进措施包括更新API端点以提高安全性、实施OAuth 2.0用户认证、增加无效凭据的错误处理以及改善开发者文档。