Git及其常用命令
# 什么是Git?
Git是一个版本管理控制系统,是目前主流的代码版本管理和分支管理工具
git工作流程 :
- 工作区( workspace ) : 自己工作的区域, 本地工作的目录, 开发者在这进程增删改的操作
- 暂存区( staging Area ) : 又叫索引区 index , 临时保存工作区上的改动,通过git add操作将工作区的修改同步到暂存区
- 本地仓库( local repository ) : 执行git commit -m "xxx" 时, 会把暂存区的暂存的内容提交到本地仓库中
- 远程仓库( remote repository ) : 远程保存代码的仓库,如github上的仓库, 执行git push会把本地仓库的内容推到远程仓库, 当然, git pull会把远程仓库的内容同步到本地仓库和工作区, 在工作区就可以看到远程仓库上最新的代码
整体工作流程为 : 工作区--–add–-->暂存区–--commit–-->本地仓库–--push–-->远程仓库
# Git常用命令
下载Git后, 先全局配置Git用户名和邮箱
git config --global user.name "用户名"
git config --global user.email "你的邮箱"
查看Git用户名和邮箱
git config --global user.name
git config --global user.email
初始化一个文件夹为一个git仓库
git init
克隆远程仓库代码
git clone [url]
查看当前分支
git branch
查看本地所有分支
git branch -a
查看远程仓库所有分支
git branch -r //注:远程刚新建的分支需要先git pull 才能使用此命令查看到远程所有分支
查看当前分支以及文件状态
git status
本地新建一个分支 如 dev
git branch dev
切换分支 如dev
git checkout dev
本地新建一个分支并切换到这个新建分支上 如:dev
git checkout -b dev
项目的远程仓库代码克隆到本地之后,本地新建一个分支并切换到这个新建分支上,并与远程的某个分支关联 如:本地新建dev并与远程dev分支关联
git checkout -b dev origin/dev
拉取远程仓库最新的代码
git pull
将本地仓库的代码推到远程仓库
git push
查看提交commit记录
git log 查看提交记录
git log -p 查看提交的详细更改
git log -p [commit id] 查看某次提交的详细更改
git log --author=Git用户名 查看某个成员的提交记录
合并某个分支( 如:feature-1.3.1 )到当前分支,在当前分支执行
git merge feature-1.3.1
# Git在其他场景的使用
一、转移代码 ===> 在 branchA 分支上工作, 工作区修改了代码还没有提交到远程仓库, 现在要将这些修改转移到 branchB 分支上
- 在 branchA 分支上暂存 : git stash
- 切换到 branchB 分支 : git checkout branchB
- 在 branchB 分支释放暂存: git stash pop //这样就将代码转移到branchB分支的本地工作区了,且并未提交。
二、切换分支解决 bug ===> 在branchA分支上修改了一些东西且暂时不想提交到远程, 临时需要切换到另一个分支 branchB 上解决bug
- 在 branchA 分支上将修改的代码暂存起来 : git stash
- 切换到 branchB 分支上解决 bug : git checkout branchB // 解决bug之后提交远程仓库
- 切回 branchA 分支, 在当前分支释放之前暂存在栈内的代码: git stash pop
三、查看一段时间内自己在项目中新增的代码行数
--since: 开始时间 --until: 结束时间 --author: git 用户名
git log --since=2022-03-18 --until=2022-03-28 --author='xxx' --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'