学习廖雪峰的Git教程随笔
1.创建版本库
git init
git add <file> 或 git add .
git commit -m "<message>" 执行成功后:(1)file changed 1个文件被改动 (2)insections 插入两行内容
2.时光机穿梭
git status 查看工作区状态(是否有文件被修改过)
git diff 查看修改的内容
3.版本回退
HEAD表示当前版本 HEAD^上一个 HEAD^^上上个 HEAD~100上100个
git reset --hard commit:id
git log 查看提交历史(commit:id),确定回退到哪个版本 git log --pretty=oneline
git reflog 查看命令历史
4.工作区和暂存区
工作区(Working Directory):电脑力能看到的目录(如learngit文件夹)
版本库(Repository):.git隐藏目录中,即Git版本库,里面有:(1)stage暂存区 (2)分支master (3)指向master的指针HEAD
5.管理修改
git add <file>之后再git commit 或 git add <file>、git add <file>...再git commit
没有git add(添加)到暂存区的修改,git commit 时是不会提交的
6.撤销修改
git checkout --<file> 撤销工作区的修改 git restore <file>
git reset HEAD <file> 撤销暂存区的修改 git restore --staged <file>
git reset --hard commit:id 撤销提交到版本库的修改
7.删除文件
git rm <file> 删除版本库中文件
rm <file> 删除工作区文件
8.远程仓库
创建SSH Key:ssh-keygen -t rsa -C "youremail@example.com"
id_rsa文件和id_rsa.pub文件
9.添加远程仓库(已有本地仓库)
git remote add origin git@... 关联远程仓库
git push -u origin master 初次关联远程仓库后用,以后就用git push
10.从远程仓库克隆(先有远程仓库,再创造本地仓库)
git clone git支持多种协议:http(s)、ssh ssh协议速度最快
第一次克隆-->SSH警告-->Are you sure you want to continue(yes/no)?-->输入yes
11.创建与合并分支
git branch 查看本地分支 git branch -a 查看所有分支
git branch <name> 创建分支
git checkout <name> / git switch <name> 切换分支
git checkout -b <name> / git switch -c <name> 创建并切换分支
git branch -d <name> 删除分支
git merge <name> 合并某(name)分支到当前分支
12.解决冲突
在不同分支修改同一文件,自动合并(merge)时会产生冲突,无法自动合并分支,必须解决冲突
解决冲突:git合并失败的文件手动编辑为统一符合要求的,再提交
git log --graph 分支合并图
git log --graph --pretty=oneline --abbrev-commit 处理分支合并图的显示格式
13.分支管理策略
Fast forward模式:合并历史无分支
普通模式(禁用fast forward):合并历史有分支
git merge --no-ff <name> 普通模式合并
14.Bug 分支
git stash 存储现场工作
git stash list 查看存储的现场工作
git stash pop 恢复现场工作并删除存储
git stash apply( stash @{o} )恢复指定的stash
git stash drop 删除存储
git cherry-pick <commit:id> bug提交的修改复制到当前分支
15.Feature分支
最后,补充介绍git flow工作流管理:
功能开发 Feature git flow feature start <branch-name> git flow feature finish <branch-name>
推送远程 git flow feature publish <branch-name> git flow feature pull origin <branch-name>
版本管理 Releases git flow release start <Version-No.> git flow release finish <Verson-No.>
Bug修复 Hotfix git flow hotfix start <branch-name> git flow hotfix finish <branch-name>

浙公网安备 33010602011771号