学习了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无法添加