检查电脑有没有安装git
git –-version
有安装的就会打印 git 的版本信息
创建文件夹
mkdir <filename>
进入文件夹
cd <filename>
初始化仓库
git init
创建文件
touch <filename>
查看本地仓库的状态
git status
查看本地仓库的修改
git diff #看当前工作树和暂存区的差别
git diff <filename> #看指定文件当前工作树和暂存区的差别
git diff HEAD #查看本次提交和上次提交的差别,这里的 HEAD 是指向当前分支中最新一次提交的指针。
打印出来的:+是新增的行,-是删除的行
还原上一次同步状态
git checkout . #还原所有文件上一次的同步状态
git checkout <filename> #还原文件 <filename> 上一次的同步状态
把代码放到暂存区
git add . #所有文件放到暂存区
git add <filename> #把文件 <filename> 放到暂存区
把暂存区的代码提交上去
git commit -m "简要提交信息"
git commit -am "简要提交信息" #等于 git add 加上 git commit
git commit --amend #修改上一次的提交信息
如果想要详细的记录提交信息,就不要加上-m,直接执行 git commit 就会出现下面的界面,按下 i 进行编辑
提交备注可以按照下面的来写:
第一行:用一行文字简述提交的更改内容
第二行:空行
第三行:记述更改的原因和详细内容
编辑完成后按 esc 退出编辑,输入 :wq 保存并退出
查看提交日志
git log #详细信息,只能查看以当前状态为终点的历史日志
git reflog #查看当前仓库的操作日志,可以在日志中找到哈希值
git log –pretty=short #简要的一行描述信息
git log --graph #以路线图形式查看操作日志
git log --oneline #以简洁单行的形式查看操作日志
git log --oneline --graph #以路线图形式查看操作日志,只显示简要信息
git log --pretty=oneline --graph #跟上面一句的效果一样
git log <filename> #查看指定文件的日志
git log -p #查看文件的改动
git log -p <filename> #查看指定文件的改动
git log –-author='username' #查看指定作者的提交日志
git show <hash> #查看提交的详细内容
如果日志太长会显示 :(冒号),按回车可以继续查看,退出查看可以按 q
提交错误后的更正
git rebase -i HEAD~2 #更正前两次的提交历史
把最终需要的那条的 pick 改成 fixup 就可以更正了
版本的回溯
git reset HEAD <filename> #回溯到上一次指定文件的提交
git reset --hard HEAD^ #回溯到上个版本,^^上上个版本
git reset --hard <hash> #回溯历史版本 hash,hash 的值可以通过 git log 查看
git checkout <hash> <filename> #指定文件的版本回退
分支的查看
git branch #显示分支,带有*星号的是当前所在的分支
git branch -a #同时显示本地仓库和远程仓库的分支信息
git branch -av #显示分支信息及提交信息
分支的创建和切换
git branch <branchname> #创建分支 <branchname>
git checkout <branchname> #切换到分支 <branchname>
git checkout - #切换回上一个分支
git checkout -b <branchname> #创建并切换分支。等同于 git branch <branchname> 加上 git checkout <branchname>
分支的删除
git branch -d <branchname> #删除分支
git branch -D <branchname> #强制删除分支
git push origin –-delete <name> #删除远程仓库的分支
合并分支
git merge <branchname> #合并分支
git merge --no-ff <branchname> #加上--no-ff参数,创建合并提交
如果出现了冲突,解决之后要重新 git add
本地仓库关联远程仓库
git remote add origin <ssh> #ssh是远程仓库的地址
推送代码到远程仓库
git push #推送代码
git push origin <branchname> #推送到远程仓库的指定分支上
git push -u origin <branchname> #推送到远程仓库,-u参数可以在推送的同时将指定分支设置为本地仓库当前分支的upstream
同步远程仓库代码
git pull #拉取最新代码
git pull origin <branchname> #从远程仓库的指定分支拉取最新代码
git checkout -b <branchname> origin/<branchname> #从 origin 仓库里的指定分支拉取下来至本地新建分支
拉取远程仓库
git fetch #从远程仓库实际获取(fetch)最新源代码,与自己仓库的合并
克隆远程仓库代码
git clone <ssh> #克隆到本地
git clone <ssh> <rename> #克隆并指定命名
标签的使用
git tag #查看标签
git tag <tagName> #创建标签
git tag -d <tagName> #删除标签
git tag <tagName> <hash> #创建标签到指定的提交上
git push origin <tagName> #推送指定标签的代码到远程
标签默认添加在最新一次的提交上
本地仓库的文件操作
git rm <filename> #删除文件
git mv <oldFilename> <newFilename> #文件重命名
git mv <filename> <path/filename> #移动文件
git mv <filename> <path/newFilename> #移动并重命名
书籍:《GitHub入门与实践》