git config
-
git --version
git版本号
-
git config --list
查看一些配置(全局),到本地仓库目录下查看的是当前仓库的配置
-
git config --global user.name '用户名'
设置全局用户名,user.email全局邮箱
--local或者什么也不写,设置当前仓库的用户名,邮箱
-
git log
查看提交记录
-
git status
查看内容修改信息
-
git config --global alias.st status
为status设置别名st
-
git config --global pull.rebase true
-
cat ~/.gitconfig
查看全局的配置文件内容
-
git config --list --global
查看全局git配置。读取的就是全局的git配置文件.gitconfig
-
git config --list --local
查看当前仓库的配置。读取的是当前仓库目录下的.git/config文件
-
system级别,global级别,local级别
git clone
-
git clone 地址
默认克隆master分支
-
git branch
查看当前分支
-
git clone -b dev 地址
克隆指定分支,这个表示克隆dev分支
git tag
-
git tag
查看所有标签
-
git tag -a v0.0.1 -m '信息'
打标签,一般信息为v0.0.1
-
git push --tag(两个-)
标签推送到远程
-
git tag -l 'v0.0.*'
查找以v0.0.开始的版本号
-
git log --pretty=online
查看提交记录
-
git tag -a v0.0.6 提交id -m '信息'
在指定提交后打标签
git status
-
查看文件的更新
-
已添加至暂存区,待提交(git add后)
-
已修改,为暂存
-
未追踪状态的文件
-
新添加的文件是未追踪的文件
-
修改和删除是未添加到暂存区的文件
-
新增test3,删除test2,修改test
-
git add test,test添加到暂存区
-
此时,test3未追踪,test2未添加到暂存区,test在暂存区等待被提交
-
如果此时提交,则此时只显示test2和test3文件,test1被提交不再显示
-
如果test添加到暂存区后不提交,然后直接修改test文件,则test会存在两个地方有状态,提交至暂存区和未提交至暂存区
-
-
-
-
git add test
将test添加到暂存区
-
git commit -m '信息'
提交暂存区的内容
-
git add -A
将所有内容添加至暂存区
git diff
-
查看文件具体的修改内容(默认查看没有添加到暂存区的内容,所有修改过的文件)
-
+表示新增的内容
-
-表示删除的内容
-
-
git diff --staged
查看添加到暂存区的内容的修改
git commit message
-
git log --pretty=oneline
列出提交记录,并显示提交信息
-
git log --pretty=oneline | grep fix
过滤内容,查找带有指定信息的提交记录
-
commit message包括三部分,主要使用Header部分
-
Header
-
Body
-
Footer
-
-
Header部分包括,type(scope): subject(注意冒号后面有一个空格)
-
type类型
-
feat
新功能
-
fix
修复bug
-
style
格式
-
refactor
代码重构
-
chore
项目构建
-
-
scope
修改代码针对的内容,模块
-
subject
描述信息
-
git reset --hard 提交记录id
撤销提交
-
git push origin master --force
提交到远程仓库master分支
-
git cz
commitizen,支持angular格式的Commit message
commitizen init cz-conventional-changelog--save-exact
-
git init
初始化
-
change log
npm install -g conventional-changelog
conventional-changelog-p angular -i CHANGELOG.md -s -r 0
默认情况下只有type为feat和fix的提交信息才会记录到CHANGELOG文件中
-
git commit -m 'fix(stockout2): 修复拖拽bug'
分支管理
-
git branch
展示现有的分支,当前分支前面带有*
-
git branch hotfix-406
创建一个新分支,名为hotfix-406
-
git checkout hotfix-406
切换分支,切换到hotfix-406
-
git checkout -b self
创建self分支,并且切换到self分支
-
git branch -d hotfix-406
删除hotfix-406分支
-
git merge self
当前分支为dev,将self的内容融入到dev(dev中增加了self的代码)
-
CONFLICT
发生冲突关键字,查看冲突文件,内容会有冲突标记
远程抓取
-
git fetch
取得远程最新版本,不更新本地仓库
git fetch origin dev
-
git merge
将远程提交的内容更新到本地
-
git pull = git fetch + git merge
git pull origin dev
远程推送
-
git push 分支
git push origin dev
-
git push -d
删除分支
git push origin -d self
-
git push --tag
推送tag
git remote
-
git remote -v
给出远程仓库位置,哪些可以fetch,哪些可以push
-
git remote add
为本地仓库创建远程连接,有远程仓库了也可以再指向一个
git remote add origin2 远程仓库地址,注意此时不能使用origin了,因为第一个远程仓库默认使用了origin
-
git remote remove
删除远程连接,git remote remove origin2
本地仓库连接一个新的远程仓库,推送一部分信息,然后删除连接,新的远程仓库此时就可以在其他地方建立一个本地仓库了,并且带有一定的信息
git merge
合并
将远程(origin)提交合并到本地,会将远程和本地的提交后面生成一个新的提交
发生冲突会将所有冲突文件列出来,手动添加提交
-
git fetch origin dev
当前分支test,抓取远程dev分支版本
-
git merge dev
当前分支test,将dev分支内容合并到test
-
git push origin test
推送到远程
git rebase
变基 ,衍合
将远程提交合并到本地,本地的提交会生成副本拼接到远程提交的后面
发生冲突只会提示一个冲突,add,git rebase --continue,不用提交
-
git rebase --continue
解决一个冲突后继续衍合
-
git fetch origin dev
当前分支test,抓取远程dev分支版本
-
git rebase dev
合并
-
git push origin test --force
推送到远程
git撤销
commit之前的撤销
-
未添加到暂存区的撤销(没执行add操作)
-
git checkout -- test2
撤销对test2文件的修改
-
git checkout -- .(杠杠点)
对所有修改文件进行撤销
-
-
添加到暂存区的撤销(执行过add操作)
-
git reset HEAD test2
test2从暂存区撤销,变为未提交至暂存区状态(文件仍然是有改动)
-
git reset HEAD
将所有文件从暂存区撤销,变为未提交至暂存区状态
-
提交(commit)之后的撤销
-
git revert 提交id
撤销这次提交
偶数次revert后,后恢复到第一次revert之前,表示撤销上一次撤销
git回滚
回退到某次提交,该提交以后的提交都回退
-
git reset -- hard commit-id
回退到某次提交
-
git ps origin dev --force
强制推送到远程(覆盖),不可逆
本地项目创建
-
创建项目
-
git配置
-
初始化成git项目
-
git init
-
-
添加.gitignore文件夹
-
添加ReadME文件
-
git remote add origin 仓库地址
将本地仓库连接到远程仓库
-
git remote -v
查看从哪个仓库fetch和push
-
使用add,commit,push将本地仓库内容推送到远程
正常开发联调
-
建立个人分支
-
文件新增,编辑,删除
-
状态查看git status
-
添加 git add
-
提交 git commit
-
推送 git push
-
git push --set-upstream origin kingx(远程分支)
设置push远程的分支,以后可以简写为git push,不用再写远程分支名
项目上线
-
代码合并到master
-
打tag
hotfix修复问题
-
切换新的分支
-
git checkout -b
一般从master分支拉取一个新分支git ck -b hotfix-0415
-
-
问题修复
-
代码提交
-
代码合并
-
重新打tag
-
git branch -d hotfix-o415
删除本地分支
-
git ps origin -d hotfix-0415
删除远端的分支
-
git stash
临时存储(保存现场)
-
git stash pop
恢复(释放暂存的内容)
多人协作开发
-
远端会出现多个不同的开发分支
-
拉取远程公共分支
-
合并到本地分支
-
解决冲突
-
提交
-
推送
github
-
github代码库工具:Octotree
-
为别人的仓库做出贡献
-
fork到自己的个人仓库
-
git clone到本地,进行开发,push到个人仓库
-
提PR,将个人仓库中的项目代码提到要合并的仓库代码中
-
点击new pull request -> create pull request
-
-
接收别人的PR
-
如果觉得修改的有道理,就点击merge pull request
-
-