关于git
创建版本库
- 创建
创建一个空目录
mkdir learngit
进入到该目录cd learngit
显示当前文件目录地址pwd
将这个目录变成git可以管理的仓库git init
将文件加入到git仓库,注意文件一定要放入到learngit文件目录下,不然无法找到该文件
- 提交
将文件添加到仓库 git add read.txt
将文件提交到仓库 git commit -m 'write a file'
可以多次add,一次commit
时间穿梭机
- 对文件进行修改后
查看仓库的状态(修改记录)
git status
通过git diff这条命令可以让我们看到具体的改动 git diff
- 版本回退
查看提交Git仓库的版本记录 git log
如果嫌输出信息太多可以使用 git log --pretty=oneline
- 撤销修改
git checkout -- readme.txt
意思就是,把readme.txt文件在工作区的修改全部撤销,回到最近一次git commit或git add时的状态。
git reset --hard HEAD^
版本倒退
指定要倒退到的版本的commit id,就可以回到想要的版本,版本号过长没必要全写,写前几位就可以了
git reset --hard 版本号
git提供一个命令记录了每一次命令,可以通过此命令查看命令历史
git reflog
取消合并操作
git merge --abort
- 删除文件
rm test.txt
需要从版本库中删除
git re text.txt
git commit -m 'remove text'
- 配置本机git提交账号(用户名和邮箱)
git config --global user.name "username"
git config --global user.email "xxxx.com"
- 从远端clone代码
git clone https://username:password@github.com/1054294965/git-test.git
分支管理
-
查看分支
git branch
-
切换分支
git checkout 分支名
-
创建分支
git checkout -b dev
等同于 git branch dev
加上
git checkout dev
- 合并分支
git merge 分支名
合并冲突,在同一个地方改动,查看冲突位置 git status
手动解决冲突,再提交commit
- 拉取,修改,同步远程分支
git fetch
拉取远程分支git fetch --prune origin
(同步远程已经删除的分支)
要删除一个没有合并过的分支 git branch -D feature
删除远程分支 git push origin --delete 分支名
同步远程废弃的分支 git remote prune origin
修改分支名字 git branch -m 原分支名 新分支名
修复bug
需要紧急修改bug,但是当前dev分支还没修改完可以,使用stash功能把当前工作现场储存起来
git stash
然后再创建bugfix分支修改,修改后合并到master分支再删除
切换到dev分支恢复修改前状态
可以通过git stash list
来查看刚才的工作现场
通过两个命令恢复
git stash apply
恢复后stash内容不删除
git stash pop
恢复后stash内容被删除
如果dev上也存在这个bug, 需要对它进行同样的bug修复
可以采用cherry-pick命令来复制修改
git cherry-pick 4c805e2
(提交的commit)
(也可以先保存当前工作区,然后修改完bug, 再回到工作区,git stash)
rebase 将本地未push的分支整理成直线,方便查看历史提交
解决无法访问github的问题
配置hosts文件 juejin.cn/post/684490…
小彩蛋
附上一个在线学习git learngitbranching.js.org/?locale=zh_…