Git学习
简单使用
初始化用户名
1 | $ git config --global user.name "Your Name" |
创建仓库
1 | $ git init |
添加文件到仓库
1 | $ git add filename #添加到暂存区 |
文件提交到仓库
1 | $ git commit -m "本次提交的说明,可以输入任意内容" #将暂存区文件添加到master的分支 |
管理文件
历史记录
1 | $ git log |
版本回退
1 | #版本回退是针对整个仓库 |
查看历史命令
1 | #帮助查看commitid回到未来版本 |
撤销修改
1 | #撤销修改针对某个文件 |
1 | # 将工作区的xxx回滚到暂存区中的xxx |
删除文件
1 | #将文件从暂存区和工作区中删除 |
远程仓库
1 | git push <远程仓库> <分支名>#本地仓库提交到远程仓库 |
分支
Git 是怎么创建新分支的呢? 很简单,它只是为你创建了一个可以移动的新的指针
Git 又是怎么知道当前在哪一个分支上呢? 也很简单,它有一个名为 HEAD
的特殊指针,指向当前所在的本地分支(将 HEAD
想象为当前分支的别名)
分支切换改变的是HEAD所指向的分支
所有分支共用一个暂存区,commit的时候看在哪个分支就把节点加到哪个分支后面
创建与合并分支
1 | git branch <分支名> #创建分支 |
分支切换会改变你工作目录中的文件
在切换分支时,一定要注意你工作目录里的文件会被改变。 如果是切换到一个较旧的分支,你的工作目录会恢复到该分支最后一次提交时的样子。 如果 Git 不能干净利落地完成这个任务,它将禁止切换分支。当你切换分支的时候,Git 会重置你的工作目录,使其看起来像回到了你在那个分支上最后一次提交的样子。 Git 会自动添加、删除、修改文件以确保此时你的工作目录和这个分支最后一次提交时的样子一模一样
切换分支遇到冲突
原因:当前分支工作区或暂存区有文件没有commit
解决办法:当前分支先commit再切换分支
解决冲突
1.当你试图合并两个分支时, 如果顺着一个分支走下去能够到达另一个分支,那么 Git 在合并两者的时候, 只会简单的将指针向前推(指针右移),因为这种情况下的合并操作没有需要解决的分歧——这就叫做 “快进(fast-forward)”。
2.当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
步骤:
1.根据git status看哪里有冲突,去修改
2.将修改完的文件git add
3.修改完所有冲突后git commit
分支管理
如果要强制禁用Fast forward
模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
1 | git merge --no-ff -m "merge with no-ff" <指定分支> |
修复bug
当前分支还没提交,想修复另一个分支的bug时
1.git stash
保存工作现场
2.git stash pop
恢复工作现场
3.git cherry-pick <commit>
把bug提交的修改“复制”到当前分支,避免重复劳动
- 標題: Git学习
- 作者: sdjasj
- 撰寫于: 2022-02-14 15:27:19
- 更新于: 2023-01-09 17:03:02
- 連結: https://redefine.ohevan.com/2022/02/14/Git学习/
- 版權宣告: 本作品采用 CC BY-NC-SA 4.0 进行许可。