git commend
设置用户名与邮箱(用户标识,必要)
1 | git config --global user.name "name" |
初始化并跟踪远程分支:
1 | git remote add origin https://github.com/jiujue/branchName.git |
代码暂存(用于debug):
暂存工作状态
git stash
创建并切换到debug分支
git checkout -b bug01
处理错误 debug …
git checkout master
合并debug后的分支
git merge bug01
查看暂存的工作状态
git stash list
回到原工作状态 :
git pop
分支相关
图形化显示 : git log –graph
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name 工作区文件内容会立即变化成对应分支的内容
创建+切换分支:git checkout -b name
合并某分支到当前分支:git merge name
删除分支:git branch -d name
查看分支合并情况:git log –graph –pretty=oneline –abbrev-commit
合并分支(fast forward):git merge name
合并分支(禁用 Fast forward):git merge –no-ff -m “描述” dev
本地分支重命名
git branch -m oldName newName将重命名后的分支推送到远程
git push origin newName删除远程的旧分支
git push –delete origin oldName
显示如下,说明删除成功
To https://xx.com/xx/xx.git
[deleted] old-name如何在某个分支上修改
git fetch (拉取远端分支信息)git branch -av 查看所有分支信息
git checkout -b test <想要跟随的分支>
标签相关
1、创建标签
1 | git tag tagname 对当前版本建立标签 |
2、删除标签
1 | git tag -d tagname 删除本地标签 |
3、推送标签
1 | git push origin tagname 推送本地的某个标签到远程 |
4、删除远程标签
1 | git tag -d tagname 先删除本地 |
1 | 命令git tag -a <tagname> -m "XXX..." 可以指定标签信息。 |
回滚操作
from : https://www.cnblogs.com/songgj/p/8965580.html
git的撤销与回滚在平时使用中还是比较多的,比如说我们想将某个修改后的文件撤销到上一个版本,或者是想撤销某次多余的提交,都要用到git的撤销和回滚操作。撤销分两种情况,一个是commit之前,一个是commit之后,下面具体看下这两种情况。
一.git commit之前
未添加到暂存区的撤销(没有git add)
添加进暂存区的撤销(git add后)
1 | $ git status |
可以通过
1 | git checkout -- filename来撤销修改 |
再次查看文件状态发现选择的文件已经成功被撤销了。
1 | $ git status |
如果想将多个文件一次性撤销可以用
1 | git checkout -- . |
上面是 未添加到暂存区的撤销
下面是添加到暂存区的
1 | $ git status |
1 | $ git add -A |
从暂存区撤销
1 | $ git reset HEAD new_src/app/Http/Controllers/Frontend/KyHome/KyHomeApp.php |
如果想一次性将所有暂存区文件撤销回来,还是上面的命令,不过不用加文件路径。
1 | $ git reset HEAD |
二.git commit之后
如果当commit提交后想撤销的话,这就需要revert命令。git revert 命令是撤销某次操作,而在此次操作之前和之后的提交记录都会保留。
先修改了几个文件然后commit 再用git log查看提交记录。
1 | commit 2842c8065322085c31fb7b8207b6296047c4ea3 |
然后使用revert 后面跟上git提交的commitid
1 | git revert 2842c8065322085c31fb7b8207b6296047c4ea3 |
1 | Revert "add content" |
然后在推送到远端更新远程仓库代码,修改的文件就撤销回来了。注意的是revert奇数次生效,偶数次又回到之前的修改状态。比如一个文件内容是a,那么修改为ab,revert后文件变成了a,如果在revert后文件又还原成ab了。
还有就是如果想回到之前某个版本,可以用reset命令,可以回退到某次提交,那该提交之后的提交都会回滚,不过这种覆盖是不可逆的,之前的提交记录都没有了。所以平时开发中尽量注意,避免使用reset。
用法:
1 | git reset --hard commit_id |
- –hard – 强制将缓存区和工作目录都同步到你指定的提交
1 | git reset --hard fdeb212a5418cc8e31f32d63cf197550297468ec |
然后在提交到远端覆盖。