三种状态
- Working Directory 工作区
- Staging Area 暂存区
- Repository 版本库
配置
配置用户名及邮箱
git config --global user.name 'wforguo'
git config --global user.email 'wforguo@qq.com'
查看已有配置
git config --global --list
仓库
一个项目其实就对应一个仓库,也就是一个版本库
初始化仓库
初始化仓库
git init
添加代码到暂存区
git add .
提交暂存区代码到远程仓库
git commit -m "first commit"
查看当前项目改动
git status
查看提交记录(所有)
git log
查看单个人的提交记录
git log --author wforguo
推送代码到远程仓库
git remote add origin https://github.com/forguos/dz-share.git
git push -u origin master
删除远程地址
git remote rm origin
文件修改查看
单行查看commitId及内容
git log --pretty=oneline readme.md
查看具体commit内容,提交人及提交内容
git show a2bab1e7832a55fa2baad2bb338a17a923bc5c52
查看单个文件修改内容
git log -p readme.md
忽略文件
新.gitignore
文件,配置需要忽略的文件或者文件夹,对应的文件就会被git忽略
.DS_Store
node_modules
/node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
/.idea
.vscode
文件的操作
添加
git add readme.md
删除
1、手动删除
手动删除文件,再执行git add .
添加剩余文件到缓存区
2、代码删除
git rm readme.md
git add .
重命名
手动重命名会先删除原有的,再去新增一个改过之后的;
git mv readme.md Readme.md
git add .
移动位置
readme.md 移动到doc文件夹下
git mv readme.md doc
git add .
readme.md 移动到doc文件夹下并重命名Readme.md
git mv readme.md doc/Readme.md
git add .
代码还原
单个文件
1、未提交至暂存区
还未提交到暂存区的代码,可以撤回
git checkout -- readme.md
2、已提交至暂存区
从暂存区撤销,再去撤回,重复上面的操作
git reset HEAD readme.md
git checkout -- readme.md
3、已经提交commit
git checkout 154653b -- readme.md
git reset
原理是根据commitId
来恢复版本,也可以通过设置HEAD^
,来回到上一个版本;
可以通过git log
命令查看提交记录或者commitId
,取前七位即可;
使用:
git reset [option] [commitId]
上个版本
git reset --hard HEAD^
HEAD^ ,^个数代表回退到前几个版本。
某个版本
git reset --hard 154653b
option 共有 3 个值,具体含义如下:
—hard:撤销 commit,撤销 add,删除工作区改动代码
- —mixed:默认参数。撤销 commit,撤销 add,还原工作区改动代码【默认】
- —soft:撤销 commit,不撤销 add,还原工作区改动代码
**--hard**
参数慎用,他将你工作区的代码直接删掉
git reset是真正的回退一个版本,修改的代码都不会有log产生
git push会提示需要先pull
解决办法有两个,
1、git push -f
【也需谨慎】
2、使用git revert
git revert
新增一个提交,并且这个提交是使用上一个提交的代码。
使用:
git revert -n [commitId]
Tag
查看
git tag
添加
git tag v1.0
指定commit
git tag v1.0 154653b
删除
git tag -d v1.0
推送
git push origin v1.0
分支的操作
基本操作
查看分支
git branch
查看本地仓库与远程仓库的关系
git branch -av
创建分支
git branch newName
切换分支
git checkout newName
创建并切换
git checkout -b newName
切换分支并与远程分支关联
git checkout -b newName remotes/origin/newName
删除分支
git branch -d newName
强制删除分支
比如当前分支commit了,没有push之时
git branch -D newName
删除远程分支
git push --delete origin oldName
分支重命名
git branch -m oldName newName
合并分支
先切换到目标分支
git checkout target
合并到当前target分支
git merge dev
解决冲突
忽略其他分支的修改
git merge --abort
手动修改后去提交
解决冲突后,提交commit
git commit -m 解决冲突
查看版本路线
查看当前的版本路线
git log --oneline --graph
修改分支名称
1. 本地分支重命名(还没有推送到远程)
git branch -m oldName newName
2. 远程分支重命名 (已经推送远程-假设本地分支和远程对应分支名称相同)
a. 重命名远程分支对应的本地分支
git branch -m oldName newName
b. 删除远程分支
git push --delete origin oldName
c. 上传新命名的本地分支
git push origin newName
d.把修改后的本地分支与远程分支关联
git branch --set-upstream-to origin/newName