浅读总结自: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 . 删除该分支上所有文件 之后就可以拉取远程分支的代码了