git常用命令

学习了Git教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

笔记:

git log    // 查看提交历史
git log -n    // 最后n次提交的信息
git log --pretty=oneline
git log --graph        // 查看分支合并图
git log --graph --pretty=oneline --abbrev-commit
git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

git reset --hard HEAD^    // 回退到上一个版本(HEAD表示当前版本,HEAD^表示上一个版本,HEAD~100表示往上100个版本)
git reset --hard <version#>
git reflog    //查看每次命令&版本号

git add <file>    // 从工作区提交到暂存区(stage)
git commit -m “comments”    // 从暂存区提交到版本库
git reset HEAD <file>    // 把暂存区的修改撤销(unstage),放回到工作区
git checkout -- <file>    // 丢弃工作区的修改

git diff HEAD -- <file>    // 查看工作区和版本库的区别

git rm <file>    // 删文件

git checkout -b <branch>    // 创建并切换分支
git branch <branch>    // 创建分支
git checkout <branch>    // 切换分支
git branch    // 查看分支,当前分支前标*
git branch -d <branch>    // 删除分支
git branch -D <branch>    // 强行删除分支
git checkout -b <branch> origin/<branch>    // 创建远程origin的<branch>分支到本地
git branch --set-upstream-to=origin/<branch> <branch>    // 指定本地<branch>分支与远程origin/<branch>分支的链接

git merge <branch>    // 合并指定分支到当前分支master
git merge --no-ff -m “comments” <branch>    // 合并分支,--no-ff表示禁用Fast forward

git push origin master    // 把本地的master分支推送到远程库
git push origin <branch>    // 把本地的<branch>分支推送到远程库

git remote add origin git@server-name:path/repo-name.git    // 关联远程库,默认使用origin对应远程库,也可用别的名字
git remote    // 查看远程库信息
git remote -v    // 查看远程库信息,显示详细信息
git remote rm origin        // 删除已关联的origin的远程库

git stash    // 把当前工作现场储藏起来,等以后恢复现场后继续工作
git stash list    // 查看
git stash apply    // 恢复,但是stash内容并不删除
git stash drop    // 删除stash内容
git stash pop    // 恢复的同时把stash内容删除
git stash apply stash@{0}    // 恢复指定的stash

git tag <tagname>    // 新建一个标签
git tag -a <tagname> -m "blablabla..."    // 指定标签信息
git tag <tagname> <commit id>    // 对指定的提交新建一个标签
git tag    // 查看所有标签
git show <tagname>    // 看到说明文字
git tag -d <tagname>    // 删除一个标签
git push origin :refs/tags/<tagname>    // 删除远程标签
git push origin <tagname>    //推送某个标签到远程
git push origin --tags    // 一次性推送全部尚未推送到远程的本地标签

如果标签已经推送到远程,要删除远程标签,分两步:
1. 先从本地删除:git tag -d <tagname>
2. 然后从远程删除:git push origin :refs/tags/<tagname>

多人协作的工作模式通常是这样:
1. 首先,可以试图用git push origin <branch-name>推送自己的修改;
2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3. 如果合并有冲突,则解决冲突,并在本地提交;
4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。

git add -f App.class    // 强制添加文件
git check-ignore -v App.class    // 检查.gitignore里的哪个规则写错了,导致App.class无法添加

原文地址:https://www.cnblogs.com/qdlk/p/10197848.html