GIT重新学习

名词解释

HEAD 表示当前版本
HEAD^ 表示上一个版本
HEAD^^ 上上一个版本
HEAD~100 上100个版本
git reset --hard HEAD^ 丢弃当前版本返回上一个版本 --soft 是将修改放回本地退回到commit之前的状态
git reset --hard 1800eea57cf37 恢复到 后面版本号指定的版本
git reflog 查看使用过的所有的指令
git diff HEAD -- readme.md 命令可以查看工作区和版本库里面最新版本的区别:

git checkout -- readme.md 没有add的时候丢弃工作区中的改动
git reset HEAD readme.txt add,但是没有commit的时候丢弃改动
git rm test.txt 确实要将 文件从git管理中删除
git checkout -- test.txt 删错文件 恢复

git remote add origin [email protected]:michaelliao/learngit.git 关联远程仓库
git push -u origin master 推送远程仓库 且进行本地mater关联远程master
git push origin master 推送远程

git checkout -b dev 切换到新分支 -b 表示创建并切换
git branch dev 创建分支
git checkout dev 切换分支
git branch 查看当前分支
git merge dev 将dev分支合并到当前分支
git branch -d dev 删除分支

git switch -c dev 切换分支 和 checkout相同
git log --graph --pretty=oneline --abbrev-commit 查看分支的合并情况:
git merge --no-ff -m "merge with no-ff" dev merge的时候禁用FF合并,因为FF合并可能会丢失分支指针
git stash 暂时贮藏
git stash list 查看之前贮藏的东西在哪里
git stash apply 恢复但是不会删除 stash中的东西
git stash pop 恢复同时删除
git stash drop 删除stash
git cherry-pick 4c805e2 将其他分支提交的4c805e2修改同步到当前分支
git branch -D feature-vulcan 强制删除分支

git checkout -b dev origin/dev 创建和远程对应的分支
git branch --set-upstream-to=origin/dev dev 制定本地分支和远程分支相关联?? git pull 失败的使用使用

git rebase -i 将多个提交合并成一个提交

git pull --rebase 和pull 产生的merge 类似 只不过是移动了一下顺序变成了一道直线
git tag v1.0 打标签
git tag v0.9 f52c633 对应提交打标签
git tag -a v0.1 -m "version 0.1 released" 1094adb 制定标签说明
git push origin v1.0 将本地的标签推送到远程
git remote rm origin 删除origin的关联
git check-ignore -v App.class 检查规则文件
git add -f App.class 强制添加文件
git config --global alias.st status 配置别名
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset
-%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" 配置显示

git commit --amend 实现本次提交和上次提交进行简单合并的操作
git commit -a 加了-a,在 commit 的时候,能帮你省一步 git add ,但也只是对修改和删除文件有效, 新文件还是要 git add,不然就是 UNtracked !

https://github.com/github/gitignore 所有的gitignore

TIPS

分支可以在自己本地藏着玩 不一定要进行推送
对于一个bug可以先git stash 保存手头上的工作,切换分支到新的分支,然后git commit 所有的提交,最后切换回主分支,后和git merge 分支

核心概念

Git管理的是修改

合并多个分支

比较适合本地还未提交的 已经提交的未经过测试 效果类似与 git commit --amend
git rebase -i

将要变为合并的分支 将pick 改为 s 一般第一个还是pick 后面的改成 s 然后生成 一个类似commit的界面重新撰写注释

git 文件过大进行删除

git clone [email protected]:jfinal/jfinal.git
git filter-branch --tree-filter 'rm -f WebRoot/WEB-INF/lib/*.jar' --tag-name-filter cat -- --all
git push origin --tags --force
git push origin --all --force

参考链接

https://www.liaoxuefeng.com/wiki/896043488029600/900062620154944 和平时一些收集网页

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章