| 本地仓 |<------->| 暂存区 |<------->| 版本库 |
撤销:
- 已修改的文件test.c,撤销
git checkout -- test.c # -- 必须要,不然就会切换分支
- 已修改的文件并使用 git add 添加到暂存区
git reset HEAD test.c # 把暂存区的修改撤销掉,重新放回工作区
- 回退到指定版本
git reset --hard <version> # 其中version可以是HEAD^、HEAD^^、HEAD~100、或git log中的版本号的前几位 1094a
- 此时如果想撤销reset,直接git pull就好了。
删除
- 本地删除文件
rm test.c
- 删除版本库的文件
git rm test.c
- 如果版本库有test.c,但是本地使用rm 删除了
git checkout -- test.c # 重新获取版本库的test.c
本地和远端仓库建联系
- 关联本地仓库和远端仓库
git remote add origin git@github.com:name/repos.git # 用于在本地有个本地仓,远端有个远端仓
- 第一次推送master分支时,加上了-u参数。
/*
* Git不但会把本地的master分支内容推送的远程新的master分支,
* 还会把本地的master分支和远程的master分支关联起来,
* 在以后的推送或者拉取时就可以简化命令: git push origin master。
*/
git push -u origin master
分支管理
- 新增分支
git checkout -b helo # 新建本地分支 = git branch helo + git checkout helo
# 或使用 git switch -c helo
# 或 git checkout -b helo origin/helo 这个就不需要再使用 2)中的步骤建联了
1) git push origin helo # 如果没有远端分支, 将新分支push到远端
2) git branch --set-upstream-to=origin/master helo # 有远端分支,将本地分支helo和远端分支master建联系。
ps:如果本地分支名字helo和远端分支master名字不同,则使用git push origin HEAD:master(git会有提示信息)推送代码。
git checkout master # 切换分支 或 git switch master
git merge helo # 或使用 git merge --no-ff -m "merge with no-ff" helo 在log中会有一个commit点。
/*
* 如果此时出现冲突,通过git status查看,解决冲突后,需执行:
* git add filename + git commit
*/
git push origin master # push到远端
-
也可以将本地分支关联到远端已有分支
git branch --set-upstream-to <branch-name> origin/<branch-name>
git branch --set-upstream-to=origin/helo1
-
删除分支
git branch -d helo # 本地分支 使用-D 代表强制删除
git push origin -d helo # 远端分支
-
查看分支合并图
git log --graph --pretty=oneline --abbrev-commit
参考:
git分支基本介绍
git 删除分支
创建与合并分支
-
临时保存修改
git stash save "message"
git stash list # 查看stash列表
git stash pop stash@{0~n} # 默认是stash@{0},也可以git stash apply stash@{1} + git stash drop stash@{1}
git stash clear # 清空stash列表
参考: Git进阶
学习资源
Git教程
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)