浅读总结自:https://www.liaoxuefeng.com/wiki/896043488029600

基本操作

git init  将当前目录变成Git可以管理的仓库
git add fileName  将修改添加到暂存区
git add . 或者 git add -A  将所有的修改添加到暂存区
git commit fileName -m"message" 将对某文件add的修改提交到仓库(可以一次add都哦个文件,用空格分隔)message为本次提交的注释,不可为空
git commit -m"message"  将所有add的修改提交到仓库
git log 查看版本提交日志(提交历史)
git log --pretty=oneline  简洁显示版本日志
git status 查看当前仓库状态(需要add,commit都会提示
git diff fileName  查看某文件的修改情况

工作区和暂存区

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
图片说明
我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

版本时光机

git reset --hard 版本号(不用全写,写前面的若干即可)  任意选择版本
git reset --hard head^  返回上一个提交的版本。Git中,指针head指向的版本就是当前版本,在其后每多一个^即表示多回退一个版本
git checkout -- fileName 丢弃对某文件在工作区的修改
git reset HEAD <file>  当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,第二步git checkout -- fileName 
git rm fileName 删除某文件

创建与合并分支

git branch  查看分支
git branch <name> 创建分支
git checkout <name>或者git switch <name>(更好)  切换分支
git checkout -b <name>或者git switch -c <name>  创建+切换分支
git checkout -b branch-name origin/branch-name 在本地创建和远程分支对应的分支,本地和远程分支的名称最好一致;
git merge <name>  合并某分支到当前分支:
git branch -d <name>  删除分支
git log --graph --pretty=oneline --abbrev-commit  查看分支合并情况

多人协作

查看远程仓库相关信息
git remote add origin git@gitlab.weichai.com:java-training/work/daily.git  添加名为origin的远程仓库,后面的url为远程仓库的ssh
git remote 查看远程仓库名称(远程仓库的名称一般默认为 origin ,当然,你可以设置为其他的名称。)
git remote -v 查看远程仓库的详细信息
git remote rm origin 删除关联的远程仓库origin
git branch 查看本地分支 
git branch -v 显示每个(本地)分支当前指向的提交记录的哈希值
git branch -vv 会显示上游分支的名字在 -v 的基础上显示本地分支相关联的上游分支
git branch -a 查看本地和远程的所有分支
git branch -av 相当于 '-a' + '-v'
git branch -avv 相当于 '-a' + '-vv'
git log remotes/origin/dev  查看远程origin仓库的dev分支的所有commit记录(log)
git branch --set-upstream-to=origin/dev dev  指定本地dev分支与远程origin/dev分支的关联
git remote prune origin    删除本地的 远程已经删除的 远程分支
拉取分支
git pull origin master  将远程master分支的代码拉到本地。若拉dev分支则 git pull origin dev,本地没有dev分支就git checkout -b dev
git pull origin master --allow-unrelated-histories  将远程master分支的代码拉到本地。加--allow-unrelated-histories后缀可以忽略“refusing to merge unrelated histories” (拒绝合并不相关历史) 的报错
推送分支

推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上

git push origin master  将本地master分支的所有提交推送到远程master仓库
git push origin dev     将本地dev分支的所有提交推送到远程的dev仓库
创建空白分支
git checkout --orphan test  新建一个名叫test的无根节点和历史记录的新分支,并移到该分支上
git rm -rf .                删除该分支上所有文件
之后就可以拉取远程分支的代码了