安装完成后,绑定用户名和邮箱,—global表示这台机器上所有的Git仓库都会使用这个配置
git config —global user.name “Your Name”
git config —global user.email “email@example.com”
创建版本库
git init
添加到暂存区,提交
git add 文件名
git commit -m “本次提交说明”
查看当前状态
git status
查看修改内容(add前)
git diff
查看提交历史
git log
查看命令历史
git reflog
回退历史版本 HEAD表示当前版本 HEAD^表示上一版本(可用这些符号代替版本号)
git reset —hard 版本号
让这个文件回到最近一次git commit或git add时的状态
git checkout — 文件名
把暂存区的修改撤销掉
git reset HEAD 文件名
从版本库中删除某文件 注意删除后需要commit才真正删除
先手动删除文件,然后使用git rm
git rm 文件名
把误删的文件恢复到最新版本,git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
git checkout — 文件名
在GitHub创建一个repository后,将本地库添加至GitHub,origin为远程库名,后边的地址注意修改
git remote add origin git@github.com:michaelliao/learngit.git
将本地库的内容推送到远程库上,由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push -u origin master
本地库的新的提交,同步到远程库
git push origin 要合并的本地分支名
删除远程库(解除本地库与远程库的绑定)
git remote -v //查看远程库的信息 删前可以确认一下 非删除步骤
git remote rm origin //删除指令
从GitHub上克隆一个库到本地,注意更改后面的地址(SSH协议)
git clone git@github.com:michaelliao/gitskills.git
创建切换分支
git checkout -b dev//命令加上-b参数表示创建并切换,也可以分成下面两条指令
git branch dev //创建
git checkout dev //切换
查看当前分支
git branch
合并指定分支到当前分支
git merge 指定分支
删除指定分支
git branch -d 指定分支
最新的切换分支指令
git switch -c 分支名//创建并切换
git switch 分支名//切换
分支合并图
git log —graph
禁用Fast Forward模式,保留分支历史的合并,其实是在当前分支上commit了一次实现的
git merge —no-ff -m “合并说明” 要合并的指定分支
切换分支时,需要保留当前分支的工作现场,即暂存区和工作区的状态
git stash
查看工作现场
git stash list
恢复工作现场
git stash pop//该指令同时删除了工作现场的记录
丢弃一个没有被合并过的分支,强行删除
git branch -D 分支名