1.git下载
官网:https://git-scm.com/downloads 默认选项安装
2.创建git仓库
(1)安装完成后,在开始菜单栏 Git Bash 打开命令窗口
配置:
git config --global user.name "wangzhichao"
git config --global user.email "785045376@qq.com"
(2)命令 cd D: ,【切换到D盘】
(3)命令:mkdir 文件夹名称 ,【创建文件夹】
(4)命令:cd 文件夹名称,【进入文件夹】;命令:pwd ,【显示当前文件夹目录】
(5)命令:git init 【把目录变成git仓库】,自动生成 .git文件目录(不可删除和修改)
3.添加文件
(1)命令:git add xxx ,【添加文件】 git add 文件名称1 文件名称2 ,【添加多个文件】
(2)命令:git commit -m "添加描述", 【-m表示提交文件时的描述】
4.查看修改日志
命令:git log , 【查看提交历史 命令:git log --pretty=oneline 简化日志】
命令:git reflog , 【查看命令历史】
命令:git log --graph --pretty=oneline --abbrev-commit 【查看分支合并情况】
5.查看仓库状态和文件修改
命令:git status ,【文件是否被修改过(文件状态)】
命令:git diff xxx ,【查看修改的内容(文件修改了,但是没有add、commit可以使用该命令查看具体文件修改)】
6.版本回退
命令:git reset --hard HEAD^ ,【回退到上个版本】
命令:git reset --hard HEAD^^ ,【回退到上上个版本】
....以此类推,所以要退回到具体版本(通过 git log 查看各个版本):
命令:git reset --hard xxx(ID前几位,下方黄色commit id),【回退到具体版本】
回退后发现想回退到最初版本,通过git log查看版本id不存在了,可以通过git reflog查看历史命令
7.工作区与暂存区
git diff 【是工作区(work dict)和暂存区(stage)的比较】
git diff --cached 【是暂存区(stage)和分支(master)的比较】
git diff HEAD -- 文件名【查看工作区和版本库最新版本区别】
8.撤销修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,命令:git checkout -- 文件
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改。第一步 命令:git reset HEAD 文件,就 回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,通过版本回退,不过前提是没有推送到远程库。
9.删除文件
命令:rm 文件名,【删除工作区的文件】
命令:git rm 文件名,【从版本库删除】
10.项目克隆
命令:git clone 项目地址
11.创建合并分支
命令:git checkout -b dev ,【创建并切换到dev分支】,-b表示创建并切换分支,相当于git branch dev,git checkout dev
命令:git branch 【查看当前分支】
命令:git checkout master 【切回主干分支】
命令:git merge dev 【把dev分支合并到master分支】
命令:git branch -d dev 【删除dev分支】
新版本:
命令:git switch -c dev 【创建并切换到dev分支】
命令:git switch master 【直接切换到已有的master分支】
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>或者git switch <name>
创建+切换分支:git checkout -b <name>或者git switch -c <name>
合并某分支到当前分支:git merge <name>
删除分支:git branck -d <name>
12.分支管理策略
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。 如果要强制禁用 Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
命令:git merge --no-ff -m "merge with no-ff" dev 【--no-ff参数,表示禁用Fast forward】【合并分支并可以查看历史信息】
13.bug分支
命令:git stash 【把当前dev分支存起来】
切换到主干分支bug修复完成后,在恢复
命令:git stash list 【查看存储列表】
命令:git stash apply 【恢复刚才存储的内容】 git stash drop 【删除存储的内容】
命令:git stash pop 【恢复的同时也把存储的内容删除】
修复bug完成后,切换到dev分支把修复完的代码同步到dev分支,使用:
命令:git cherry-pick <commit> 【commit 为bug提交的id】
14.删除为合并的分支
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <分支名> 强行删除。
15.查看远程仓库信息【远程仓库名为origin】
命令:git remote 【查看远程仓库信息】
命令:git remote -v 【查看远程仓库详细信息】
16.推送分支
命令:git push origin master 【推送分支】就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样, Git就会把该分支推送到远程库对应的远程分支上
17.抓取分支
命令:git pull <抓取分支,更新代码> ,如果有冲突,要先处理冲突。
命令:git checkout -b <分支名> origin/<分支名>,<在本地创建和远程分支对应的分支> ,本地和远程分支的名
称最好一致;
命令:git branch --set-upstream <分支名> origin/<分支名>,<
建立本地分支和远程分支的关联>
18.整理本地提交历史
命令:git rebase 【整理历史提交结构】
通过命令:git log --graph --pretty=oneline --abbrev-commit 查看时比较整洁
19.标签管理
发布新的版本后需要把代码打个版本,用到了标签。
命令:git tag <name>【name 为版本号,打一个新的标签版本】
命令:git tag 【查看各个打过标签的版本】
命令:git tag <name> <commit id> 【根据提交的id 打tag版本】,比如对之前提交的代码打版本
命令:git tag -a <版本号> -m "描述" <commit id> 【带有说明的标签】用-a
指定标签名,-m
指定说明文字
命令:git show <tagname> 【查看标签信息】
命令:git tag -d <版本号> 【删除tag版本】
命令:git push origin <版本号> 【推送某个版本到远程仓库】
命令:git push origin --tags 【推送本地所有没有推送到远程仓库的版本】
删除远程仓库tag标签:
先删除本地版本:git tag -d <版本号>
在执行:git push origin :refs/tags/<版本号>