配置文件
查看 GIT 本地配置
编辑 git 配置文件
1
| git config --global --edit
|
设置 GIT 用户信息
1 2
| git config --global user.name "zhanglikun" git config --global user.email "iuxt@qq.com"
|
git 记住密码
1
| git config --global credential.helper store
|
配置文件 ~/.gitconfig
内容
1 2 3 4 5
| [user] name = zhanglikun email = iuxt@qq.com [credential] helper = store
|
忽略追踪文件权限
建议 windows 代码使用
1
| git config core.filemode false
|
分支管理
命令 |
作用 |
git branch -a |
查看所有分支 |
git branch -r |
查看远程分支 |
git fetch |
更新索引 |
git checkout 分支名 |
切换到分支 |
git checkout -b 本地分支名 |
在本地创建一个分支, 并切换到这个分支 |
git reset –hard 6e52 |
回退到某个 ID |
git add -u |
将删除操作也添加到暂存区 |
git rm –cached filename |
将暂存区的文件移出暂存区 |
使用 git checkout 撤销本地修改
checkout 就是撤销你的修改, 暂存区是会保留.
1 2 3 4 5
| git checkout .
git checkout readme.md
|
git 回滚一个文件到指定版
根据 commitid 来回滚
1 2
| git log /path/to/file git checkout <commit-hashcode> /path/to/file
|
回滚到上一个版本
1
| git checkout HEAD^ /path/to/file
|
使用 git reset 回退项目版本
git reflog 查看命令历史
1 2
| git reset --hard <commit-hashcode> git reset --hard HEAD^
|
添加关联的远程 git 仓库
origin 是远端的名字, 多个远端名字不能相同
1
| git remote add origin https://github.com/iuxt/test.git
|
上传,并关联到 master 分支
1
| git push -u origin master
|
合并代码
1 2
| git checkout master git merge dev
|
合并方式如果是 fast-forward 模式, 表示 git 只是切换了一下指针
删除分支, 分支改名
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| git branch -m oldbranch newbranch
git push --delete origin oldbranch
git push origin newbranch
git branch --set-upstream-to origin/newbranch
git fetch -p
|
rebase
利用 rebase 删除历史提交记录
1
| git rebase -i <你要基于那个提交的id>
|
commit 前面的 pick 改成 d 即可,表示丢弃这个 commit,如果需要推送到远端的话,需要 git push -f
注意:多人协作慎用 git push -f
标签管理
查看标签
1 2 3 4 5
| git tag
git show v1.0
|
创建标签
切换到对应的分支, 默认是打在最新的 commit 上的。
如果想要打到历史的 commit id
1 2 3 4 5 6 7 8
| git log --pretty=oneline --abbrev-commit
git tag v0.9 f52c633
git tag -a v0.1 -m "version 0.1 released" 1094adb
|
推送标签
1 2 3 4 5
| git push origin --tags
git push origin refs/tags/v0.1
|
删除标签
1 2 3 4 5 6
| git tag -d v0.1
git tag -d v0.1 git push origin :refs/tags/v0.1
|
submodule
添加 submodule
1
| git submodule add https://github.com/HEIGE-PCloud/DoIt.git themes/DoIt
|
后续使用
1 2 3 4
| git clone https://github.com/HEIGE-PCloud/DoIt.git cd DoIt git submodule init git submodule update
|
删除 submodule
1 2 3
| git submodule deinit -f -- themes/eureka rm -rf .git/modules/themes/eureka git rm -f themes/eureka
|
最后更新一下 .gitmodules
即可
修改 submodule 的 url
1.更新 .gitsubmodule 中对应 submodule 的条目 URL
2.更新 .git/config 中对应 submodule 的条目的 URL
3.执行 git submodule sync
小技巧
指定密码拉取 git
不安全, 推荐使用 ssh 密钥方式
1
| git clone http://admin:admin%401234@203.156.235.84:10000/r/app/client.git
|
windows 建议配置
1 2 3 4 5 6 7 8
| git config --global core.autocrlf input
git config --global core.filemode false
git config --global core.quotepath false
|
git-lfs 大文件存储
git lfs 是大文件存储, 独立于 git 仓库, 通过文件指针的方式来调用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| git lfs init
git lfs track *.rpm
git lfs ls-files
git lfs fetch --all
git lfs push origin master --all git lfs push --all
|