Git的常见用法
基本用法
-
初始化仓库
在当前目录下会自动生成一个 .git 目录
当前目录下所有的文件都属于
Untracked未跟踪git init -
查看当前工作区的文件状态
git status -
将工作区的未跟踪或修改的文件添加到暂存区
git add . -
将暂存区的文件提交到本地代码库
git commit -m "提交信息" -
将本地代码库的代码上传到远程代码库
git push -
将远程代码库下载到本地代码库
git pull -
将别人的仓库克隆到本地(克隆成功就是一个 git 仓库)
只要是 clone 过来的仓库就不需要初始化了, 也可以直接进行 push / pull
git clone -
在执行 git push 之前, 要保证当前的本地仓库有和远程仓库关联
查看本地仓库是否有远程仓库
git remote -v # 短指令 git remote --verbose # 长指令 效果同上添加远程仓库的关联
git remote add 关联的远程仓库名(一般都是 origin) 远程仓库的地址(ssh 地址)删除远程仓库的关联
git remote remove 远程仓库名(一般都是 origin) -
查看提交日志
git log git log --oneline # 一行的形式展现, 显示精简信息 -
切换到以前的版本
--hard一定要慎用, 将工作区没有提交的代码全部清空, 不保存, 直接切换--soft可以灵活使用, 将工作区没有提交的代码先添加到暂存区后再切换git reset --hard commit hash git reset --hard HEAD~0 # 小技巧, 可以用 HEAD~0 表示回到最新的一次提交查看历史操作记录
git reflog
多分支
-
创建分支
git branch 分支名 # 使用频率较低 git checkout -b 分支名 # 常用, 创建并切换至指定分支 -
查看分支
git branch -a # 查看所有分支(包括远程分支) -
切换分支
git checkout 分支名 -
合并分支
将指定的分支合并到当前分支, 一般执行 merge 的分支都是 master
git merge 分支名
开发过程中比较常见的工作流程 (PR)
GitFlow:git 工作流
-
会将 master 分支锁住, 任何人不得直接 push 到 master 分支, 保护 master
意味着合并操作将没有意义了,即使合并了分支, 也无法推送到远程
-
既然不能直接提交到 master,就需要新建一个分支并提交到 dev 分支中最后推送给远程仓库
git checkout -b dev # 新建分支 git add . # 修改完代码后进行添加并提交 git commit -m "描述信息" git push -u origin dev # 推送到远程仓库 -
在 git 管理平台(github 码云等) 新建 PullRequest
-
在 PR 中由其他成员(组长)进行 CodeReview(代码审查), 提出看法或整改建议
修改完毕后通过审查及测试,最后由组长进行合并
-
统一通过 PR 的方式提交, Pull Request
作为程序员,在开源世界中进行交流的两大方法:Issues(向作者提问)、Pull Request(向作者贡献代码)