git的常用命令

294 阅读3分钟

关于git

创建版本库

  1. 创建 创建一个空目录 mkdir learngit 进入到该目录 cd learngit 显示当前文件目录地址 pwd 将这个目录变成git可以管理的仓库 git init

将文件加入到git仓库,注意文件一定要放入到learngit文件目录下,不然无法找到该文件

  1. 提交

将文件添加到仓库 git add read.txt

将文件提交到仓库 git commit -m 'write a file'

可以多次add,一次commit

时间穿梭机

  1. 对文件进行修改后 查看仓库的状态(修改记录) git status

通过git diff这条命令可以让我们看到具体的改动 git diff

  1. 版本回退

查看提交Git仓库的版本记录 git log

如果嫌输出信息太多可以使用 git log --pretty=oneline

  1. 撤销修改 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

  1. 删除文件

rm test.txt

需要从版本库中删除

git re text.txt

git commit -m 'remove text'

  1. 配置本机git提交账号(用户名和邮箱)

git config --global user.name "username"

git config --global user.email "xxxx.com"

  1. 从远端clone代码

git clone https://username:password@github.com/1054294965/git-test.git

分支管理

  1. 查看分支 git branch

  2. 切换分支 git checkout 分支名

  3. 创建分支 git checkout -b dev

等同于 git branch dev 加上 git checkout dev

  1. 合并分支 git merge 分支名

合并冲突,在同一个地方改动,查看冲突位置 git status

手动解决冲突,再提交commit

  1. 拉取,修改,同步远程分支 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_…