1.强制推送(慎用,除非你认为其他冲突等可以丢弃 或者不是很重要)
git push -- force
2.创建文件等小命令
touch a
echo 1234 >> a
cat a
mkdir test
rm 文件名
pwd
3.安装git的时候 都会安装git bash和git GUI 我们完全也可以使用git GUI来提交版本 与sourcetree等功能相同
gitk
4.文件信息
ls
ls 文件夹名
ls -l
ls -l -a
5.cd快速切换路径
cd ~
cd -
cd ../
cd 文件夹名
cd /
6. vim模式
vim 文件名
i 插入内容
按下esc :wq 保存并退出
按下esc :q 直接退出
vim 模式下 文件中#号开头的为注释
.project 忽略.project文件
*.obj 或者 *.exe 忽略一类文件 例如以.obj .exe 结尾的文件
git check-ignore -v .project 查看ignore中.project的位置
7.常用git 命令
git init
git clone 地址
git clone -b 分支名 地址
git status
git add 文件名
git checkout -- file
git add b c
git add .
git add -p 文件名
git stash -u -k
git commit -m "提交的备注信息"
若已经有若干文件放入仓库,再次提交可以不用git add和git commit -m "备注信息" 这2步, 直接用
git commit -am "备注信息"
* git commit中的备注信息尽量完善 养成良好提交习惯 例如 git commit -m "变更(范围):变更的内容"
8.存储密码凭证 设置别名 获取config信息以及配置
git config --list
git config --global core.safecrlf false
其中CR是回车的意思 LF是换行
git config --global user.name"your name"
git config --global user.email"your_email@youremail.com"
git config --global credential.helper wincred
git config --global alias.ci commit
git helper -a
10.逐行查看文件的修改历史
git blame 文件名
git blame -L 100,10 文件名
11.清除
git clean -n
git clean -f
git clean -x -f
git status -sb (sb是 short branch)
12.删除放入暂存区文件的方法(已commit后)
git rm 文件名
git reset HEAD^ --hard
13.修改文件名以及移动
git mv a b
git mv b ./demos/
14.对比工作区,暂存区,仓库的差异
git diff
git diff --cached
git diff HEAD
git diff 版本哈希值 版本哈希值
或者 git diff HEAD~数字 HEAD~数字
git diff tt 就是倒数第5个版本与第一个版本之间的差异
git diff --cached tt 暂存区与倒数第5个版本之间的比对
15.查看提交信息
git show HEAD
git show HEAD^
git show HEAD^^ 或者git show HEAD~2 查看前2次变更
git show HEAD 或 git show 哈希值 或者git show tag(标签名) 都可以查看最近一次提交的详细信息
16.查看信息
git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
git log --oneline
git log -5
git log --oneline -5
git log 文件名
git log --grep
git log -n
git log -p
17.变基操作,改写历史提交 把多次提交合并起来
git rebase -i HEAD~3 变基之后的哈希值与之前的不同 证明变基是重新做的提交 把多次提交合并成了几次提交
18.回撤操作
git commit --amend -m "提交信息"
git reset HEAD~2 --hard
git reset --files
git reset HEAD
git reset HEAD --soft 回撤提交到暂存区
git reset HEAD --hard
git reset HEAD^
git reset --soft HEAD^
git reset --hard HEAD^
git reset --hard commitid
git reset --soft commitid
git push -f -u origin 分支名 所有内容都回撤完了 将回撤后的操作强制推送到远程分支
git push origin/分支名 --force 强制将本地回撤后的操作 强制推送到远程分支
19.标签操作
git tag
git tag -d 标签名
git push origin :refs/tags/远程标签名
git tag 标签名字
git tag 标签名 commitid
git tag -l
git show 标签名称
git push origin 标签名称
git push origin --tags
git pull --tags
git tag foo -m "message"
git tag 标签名 哈希值 -m "message"
git tag foo HEAD~4
git stash
git stash list
git stash pop
git stash apply
git stash clear
git reset --hard
20.分支
git branch 分支名
git branch
git checkout 分支名
git checkout -b 分支名
git checkout commitId 文件名(文件路径下的文件名) 还原这个文件到对应的commitId的版本
(例如src/page/attendance/attendanceSum.vue我想把它还原到2个版本之前 首先git log src/page/attendance/attendanceSum.vue找到对应想要还原的版本
复制版本提交的commitID 然后执行git checkout commitID src/page/attendance/attendanceSum.vue
这样就把attendanceSum.vue这个单个文件 还原到了对应版本)
git branch -v
git merge 分支名
git cherry-pick commitId
git branch -d 分支名
git branch -D 分支名
git branch -m 旧分支名 新分支名
git branch -M 旧分支名 新分支名
git branch -r
git branch -a
git branch | xargs git branch \-d
git branch
git reflog show --date=iso <branch name>
git fetch
git push -u origin 分支名
git push origin --delete 分支名 (将git branch -D 分支名 删掉的分支 同步到远程主机 将origin/分支名的该分支也删除掉)
git remote show origin 查看remote地址,远程分支,还有本地分支与之相对应关系等信息(结合git branch -a使用)
git remote prune origin 删除远程仓库不存在的分支 (git branch -a使用)
git reflog show --date=iso 分支名
21.git仓库迁移
git remote set-url origin <新的仓库名>
git push -u -f origin
git push -u -f origin --all
git push -u -f origin --tags
重新仓库迁移 里面分支没同步的话 执行 git fetch试一下 同步过来