Git 常用操作
22-01-21 16:08
字数 2877
阅读 1662
已编辑
三个区
- 工作区(当前编辑的区域)
- 暂存区(stage,git add 之后文件待的地方)
- 版本库(git commit 之后文件待的地方)
查看log
git log --pretty=oneline --abbrev-commit
回滚版本
命令 | 作用 |
---|---|
git reset --soft | 暂存区->工作区 |
git reset --mixed (默认参数) | 版本库->暂存区 |
git reset --hard | 版本库->暂存区->工作区 |
- 回退上个版本
git reset --hard HEAD^
- 回退上上个版本
git reset --hard HEAD^^
- 回退上100个版本
git reset --hard HEAD~100
撤销修改(撤销工作区已编辑的代码)
-
未add到暂存区
git checkout -- <filename> # 新版本中可用下面的命令代替 git restore <filename>
-
已add到暂存区
git reset HEAD <filename> // 拉取版本库中最近的代码到暂存区 # 上面的命令在新版本可用 git restore --staged <file> 代替 git checkout -- <filename> // 拉取暂存区的代码到工作区,如果暂存区中没有则从版本库中拉取
常用操作
- 修改了4个文件,在不放弃任何修改的情况下,其中一个文件不想提交,如何操作?(没add : git add 已经add: git reset --soft )
- 修改到一半的文件,突然间不需要或者放弃修改了,怎么恢复未修改前文件? (git checkout )
- 代码写一半,被打断去做其他功能开发,未完成代码保存?(git stash)
- 代码写一半,发现忘记切换分支了?(git stash & git checkout )
- 代码需要回滚了?(git reset)
删除文件
git rm <filename>
rm <filename>
撤销删除(未从版本库中删除)
git checkout -- <filename>
分支
创建分支
git branch dev
切换分支
git checkout dev
# 或者
git switch dev
查询分支
git branch
创建并切换分支
git checkout -b dev
# 或者
git switch -c dev
合并分支
# 把dev分支合并到master
git checkout master
git merge dev
删除分支
git branch -d dev
# 如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除
分支合并图
git log --graph
复制其他分支的提交到当前分支
git cherry-pick <commit>
合并分支的指定版本到当前分支
比如现在有两个分支,master 和 dev,需要把dev的f
提交的提交合并到master版本
# 首先切换到 master 分支
git checkout master
# cherry pick
git cherry-pick f
把dev的f
至 i
提交的提交合并到master版本
# 首先切换到 master 分支
git checkout master
# cherry pick
git cherry-pick f^..i
stash
存储当前修改
git stash
查看当前stash list
git stash list
恢复stash到工作区
git stash apply # stash内容不删除
git stash pop # 删除stash内容
删除stash
git stash drop [stash@{0}]
标签 tag
新建标签
git tag <tagname> [<commit id>]
# 指定标签内容
git tag -a <tagname> -m "blablabla..."
查看标签列表
git tag
查看标签信息
git show <tagname>
删除标签内容
git tag -d <tagname>
推送标签到远程
git push origin <tagname>
推送所有未推送标签到远程
git push origin --tags
删除远程标签
# 先删除本地标签
git tag -d <tagname>
# 再删除远程标签
git push origin :refs/tags/<tagname>
使用远程仓库
关联本地库和gitee
git remote add origin git@gitee.com:xxxx/xxxx.git
删除本地已关联的远程
git remote rm origin
在本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name
建立本地分支和远程分支的关联
git branch --set-upstream-to branch-name origin/branch-name
# the '--set-upstream' option is no longer supported. Please use '--track' or '--set-upstream-to' instead.
推送到远程库
# 第一次push加-u参数 以后可直接git push 代替git push origin master
git push -u origin master
多人合作
多人协作的工作模式通常是这样:
-
首先,可以试图用git push origin 推送自己的修改;
-
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
-
如果合并有冲突,则解决冲突,并在本地提交;
-
没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
-
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/。
参考
https://segmentfault.com/a/1190000002783245 https://www.liaoxuefeng.com/wiki/896043488029600/902335212905824
1人点赞>
请登录后发表评论
文章归档
2024-11
1 篇
2024-06
1 篇
2024-05
2 篇
2024-04
2 篇
2024-03
2 篇
展开剩余 68 条
2024-01
1 篇
2023-10
1 篇
2023-09
1 篇
2023-08
1 篇
2023-06
1 篇
2023-04
1 篇
2022-12
2 篇
2022-06
1 篇
2022-04
4 篇
2022-03
3 篇
2022-01
6 篇
2021-12
2 篇
2021-11
2 篇
2021-10
2 篇
2021-09
1 篇
2021-08
2 篇
2021-07
4 篇
2021-06
1 篇
2021-05
3 篇
2021-04
3 篇
2021-01
2 篇
2020-11
1 篇
2020-10
3 篇
2020-09
2 篇
2020-08
1 篇
2020-07
5 篇
2020-06
5 篇
2020-05
1 篇
2020-04
1 篇
2020-03
2 篇
2020-02
3 篇
2020-01
1 篇
2019-11
5 篇
2019-10
10 篇
2019-09
12 篇
2019-08
17 篇
2019-07
8 篇
2019-05
3 篇
2019-04
8 篇
2019-03
7 篇
2019-02
8 篇
2019-01
5 篇
2018-12
7 篇
2018-11
8 篇
2018-10
4 篇
2018-09
7 篇
2018-08
12 篇
2018-07
9 篇
2018-06
6 篇
2018-05
11 篇
2018-04
18 篇
2018-03
1 篇
2018-02
2 篇
2018-01
10 篇
2017-12
14 篇
2017-11
44 篇
2017-10
13 篇
2017-09
4 篇
2017-08
12 篇
2017-07
5 篇
2017-06
4 篇
2017-05
2 篇
2017-04
3 篇
2017-03
9 篇
2017-02
3 篇
2017-01
2 篇
2016-12
10 篇
2016-11
4 篇
最新文章
最受欢迎
11-07 19:00
06-26 11:51
05-17 17:08
05-17 10:59
04-11 17:05
13 评论
11 评论
10 评论
巨佬
还有 git rebase 补充补充 实际场景的使用
合并commit ?