git config --global user.name "yx"
git config --global user.email "3896xxxxxx@qq.com"
创建 git 仓库:
mkdir homework
cd homework
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/topxin/homework.git
git push -u origin master
已有仓库?
cd existing_git_repo
git remote add origin https://gitee.com/topxin/homework.git
git push -u origin master
配置git的最低速度和最低速度时间:
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
回退提交版本命令:
$ git reset --hard HEAD^ 回退到上个版本
$ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
$ git reset --hard commit_id 退到/进到 指定commit的sha码
强推到远程:
$ git push origin HEAD --force
GIT是一个开源的分布式的版本控制系统,是由Linus 为了管理Linux内核开发而开发的一个开源的版本控制软件。相比SVN,它采用分布式版本库方式。
工作区,暂存区和版本库
左侧为工作区,编辑文件所在的目录,右侧为版本库,其中index区域是暂存区,标记为"master"代表master主分支。
基本操作指令
1.创建仓库
a.当前目录创建仓库
git init
b.指定目录创建仓库
git init 目录名
2.设置配置
a.全局配置
git config --global user.name woniu
git config --global user.email woniu@163.com
b.设置本地仓库配置
git config --local user.name woniu
git config --local user.email woniu@163.com
c.查看配置信息
git config --global --list
3.工作区文件新增到暂存区
a.提交指定文件
git add a.cpp
b.提交当前目录所有文件
git add .
c.把提交过暂存区,已经发生改变的文件再次提交到暂存区
git add -u
4.暂存区文件提交到版本库
git commit -m "初始版本"
5.查看git提交日志
a.全部日志
git log
b.简化日志
git log --oneline
c.查看前5个日志
git log -n5 --oneline
d.查看所有日志
git log --all
e.图像化查看所有日志
git log --all --graph
f.图形化界面查看
gitk
6.查看上次提交后是否有修改
git status
7.查看差异
a.查看工作区与暂存区差异
git diff
b.查看暂存区与仓库之间的差异
git diff --cached
c.比较不同commit的差异
git diff HEAD1 HEAD2
8.清空暂存区,工作区修改
git reset --hard
9. 删除工作区和暂存区文件
git rm 文件名
git rm --cached springboot-projects
10.重命名文件
git mv a.cpp b.cpp
11.版本回滚
a.恢复暂存区和HEAD一致
git reset HEAD
b.恢复暂存区指定文件与HEAD一致
git reset HEAD -- 文件名
c.恢复工作区与暂存区一致
git checkout -- 文件名
d.回退到指定commit,会清楚之后提交的commit
git reset --hard HEAD
分支管理
1.创建分支
a.直接创建
git branch dev(分支名)
b.基于某个历史版本创建分支
git branch dev HEAD
2.查看分支
git branch -av
3.删除分支
git branch -d dev(分支名)
4.切换分支
git checkout dev
5.查看分支差异
a.查看分支差异
git diff dev master
b.查看分支指定文件差异
git diff dev master -- index
6.本地仓库推送到远端仓库
a.Git代码托管平台创建仓库
http地址:https://gitee.com/woniu/git-test.git
b.本地仓库与远端仓库关联
git remote add origin https://gitee.com/woniu/git-test.git
c.如果远端仓库是空的
git push -u origin master
一般远端仓库都会有readme文件,解决方案
git pull --rebase origin master
d.提交到远程仓库
git push origin master
7.拉取远程分支
a.拉取远程分支,默认拉取主分支
git clone https://gitee.com/woniu/git-test.git
b.拉取远程指定分支
git clone -b dev https://gitee.com/woniu/git-test.git
c.拉取主分支后,基于远端指定分支本次创建新分支
git branch -av 红色部分代表远端分支
git branch dev origin/dev 基于远端的dev分支本次创建dev分支
8、git push异常
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://gitee.com/topxin/springboot-projects
.git'
git pull --rebase origin master
总结
Git已经成为目前最流行的版本控制工具,一些大公司逐渐从SVN过度到Git,熟练使用Git成为了程序员的必备技能,本篇文章几乎覆盖了常用操作指令,希望对大家有帮助。
分支操作:
-
git branch 创建分支
-
git branch -b 创建并切换到新建的分支上
-
git checkout 切换分支
-
git branch 查看分支列表
-
git branch -v 查看所有分支的最后一次操作
-
git branch -vv 查看当前分支
-
git brabch -b 分支名 origin/分支名 创建远程分支到本地
-
git branch --merged 查看别的分支和当前分支合并过的分支
-
git branch --no-merged 查看未与当前分支合并的分支
-
git branch -d 分支名 删除本地分支
-
git branch -D 分支名 强行删除分支
-
git branch origin :分支名 删除远处仓库分支
-
git merge 分支名 合并分支到当前分支上
暂存操作:
-
git stash 暂存当前修改
-
git stash apply 恢复最近的一次暂存
-
git stash pop 恢复暂存并删除暂存记录
-
git stash list 查看暂存列表
-
git stash drop 暂存名(例:stash@{0}) 移除某次暂存
-
git stash clear 清除暂存
回退操作:
-
git reset --hard HEAD^ 回退到上一个版本
-
git reset --hard ahdhs1(commit_id) 回退到某个版本
-
git checkout -- file撤销修改的文件(如果文件加入到了暂存区,则回退到暂存区的,如果文件加入到了版本库,则还原至加入版本库之后的状态)
-
git reset HEAD file 撤回暂存区的文件修改到工作区
标签操作:
-
git tag 标签名 添加标签(默认对当前版本)
-
git tag 标签名 commit_id 对某一提交记录打标签
-
git tag -a 标签名 -m '描述' 创建新标签并增加备注
-
git tag 列出所有标签列表
-
git show 标签名 查看标签信息
-
git tag -d 标签名 删除本地标签
-
git push origin 标签名 推送标签到远程仓库
-
git push origin --tags 推送所有标签到远程仓库
-
git push origin :refs/tags/标签名 从远程仓库中删除标签
常规操作:
-
git push origin test 推送本地分支到远程仓库
-
git rm -r --cached 文件/文件夹名字 取消文件被版本控制
-
git reflog 获取执行过的命令
-
git log --graph 查看分支合并图
-
git merge --no-ff -m '合并描述' 分支名 不使用Fast forward方式合并,采用这种方式合并可以看到合并记录
-
git check-ignore -v 文件名 查看忽略规则
-
git add -f 文件名 强制将文件提交
git创建项目仓库:
-
git init 初始化
-
git remote add origin url 关联远程仓库
-
git pull
-
git fetch 获取远程仓库中所有的分支到本地
忽略已加入到版本库中的文件:
-
git update-index --assume-unchanged file 忽略单个文件
-
git rm -r --cached 文件/文件夹名字 (. 忽略全部文件)
取消忽略文件:
-
git update-index --no-assume-unchanged file
拉取、上传免密码:
-
git config --global credential.helper store