修改最新的commit的msg
git commit --amend
修改之前某一个的commit的msg
git rebase -- 变基
git rebase -i <after-this-commit> : -i 表示交互式
修改之前某一个的commit = 基于前一个commit 进行修改当前的commit
p, pick <commit> = use commit =》 选择某个commit
r, reword <commit> = use commit, but edit the commit message 重写某个commit msg
s, squash <commit> = use commit, but meld into previous commit 合并多个commit msg
合并多个commit的msg 合并成一个commit msg
git rebase -i <after-this-commit>
查看文件差异
git status 可以查看文件的个数 名字
查看所有文件内容差异:
git diff 工作区 vs 暂存区 文件内容差异
git diff --cached 暂存区 vs 本地仓库 文件内容差异
工作区提交到暂存区
git add
可以进行撤回
git restore --staged 1.log
暂存区提交到本地仓库 可以撤回
git commit 之前: 回退版本
git reset --hard HEAD
删除/重命名文件
git rm/mv
git commit -m "Rm 11.log"
例子:
git stash
1.开发代码
vim 2.log
2.突然线上bug +解决bug
git stash
commit
3.恢复 解决bug之前的开发代码
git stash list
git stash apply 补充 : --index <stash 下标>
gitignore
通过这个文件 可以指定 哪些文件 不需要被git管控
-- java
=》 xxx.java => xxx.class
=> .idea 文件里面的文件 也是不需要被管控
eg:
*.class =》以.class文件结尾的 不需要被 git管控
仓库备份:克隆
git clone:
git clone <repository> [<directory>]
repository: 仓库
本地仓库: path
远程仓库:url
本地仓库 备份到 本地
git clone /e/test/music/.git music_blk
远程仓库 备份到 本地
远程仓库:
本地项目
代码托管平台:github、gitlab、gitee
git clone http://192.168.41.110/dl2262/dl2262.git
连接远程仓库:
git remote add gitlab http://192.168.41.110/dl2262/test01.git
检查远程仓库的连接
git remote -v
本地仓库 push 远程仓库
git push ==> 更新远程仓库的分支
git push [--all ] => 本地所有分支 更新到远程仓库 分支
dev -> dev =》 本地dev =》 远程 自动给远程 dev 分支
master -> master (fetch first)
error: failed to push some refs to 'http://192.168.41.110/dl2262/test01.git'
解决:
git fetch / git pull :
git fetch 可以指定拉取哪个仓库哪个分支
git fetch --all 拉取远程仓库 所有分支
git fetch gitlab master 默认先把远程 分支拉下来 但是文件没有和 本地分支 进行合并
git merge 远程分支:
git merge gitlab/master
fatal: refusing to merge unrelated histories
git merge --allow-unrelated-histories gitlab/master
git push gitlab master