目录

git常用操作记录

配置文件

查看GIT本地配置

git config --list

编辑git配置文件

git config --global --edit

设置GIT用户信息

git config --global user.name "zhanglikun"
git config --global user.email "iuxt@qq.com"

git记住密码

git config --global credential.helper store

配置文件~/.gitconfig内容

[user]
        name = zhanglikun
        email = iuxt@qq.com
[credential]
        helper = store

忽略追踪文件权限

建议windows代码使用

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 就是撤销你的修改, 暂存区是会保留.

# 撤销所有修改
git checkout .

# 撤销单个文件的修改
git checkout readme.md

git回滚一个文件到指定版

根据commitid来回滚

git log /path/to/file
git checkout <commit-hashcode> /path/to/file

回滚到上一个版本

git checkout HEAD^ /path/to/file

使用 git reset 回退项目版本

git reflog查看命令历史

git reset --hard <commit-hashcode>
git reset --hard HEAD^                  # HEAD表示当前版本 HEAD^ 表示上一个版本 HEAD^^ 上两个版本 HEAD~100 上100个版本

添加关联的远程git仓库

origin是远端的名字, 多个远端名字不能相同

git remote add origin https://github.com/iuxt/test.git

上传,并关联到master分支

git push -u origin master

合并代码

git checkout master
git merge dev            # 将dev代码合并到master

合并方式如果是fast-forward模式, 表示git只是切换了一下指针

删除分支, 分支改名

# 重命名本地分支
git branch -m oldbranch newbranch

# 删除远程分支
```bash
git push --delete origin oldbranch

# 将重命名后的分支推到远端
git push origin newbranch

# 与远程分支关联
git branch --set-upstream-to origin/newbranch

rebase

利用rebase删除历史提交记录

git rebase -i <你要基于那个提交的id>

commit前面的pick改成d即可,表示丢弃这个commit,如果需要推送到远端的话,需要git push -f

注意:多人协作慎用git push -f

submodule

添加submodule

git submodule add https://github.com/HEIGE-PCloud/DoIt.git themes/DoIt

后续使用

git clone https://github.com/HEIGE-PCloud/DoIt.git
cd DoIt
git submodule init
git submodule update

删除submodule

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密钥方式

git clone http://admin:admin%401234@203.156.235.84:10000/r/app/client.git                        # %40 表示 @