常用命令

  • clone远程仓库到本地:在准备放仓库的路径下,git clone +仓库地址
  • 更新本地仓库:git pull
  • 查看仓库提交状态:git status
  • 放弃所有更改:git checkout .
  • 修改commit的注释:git commit –amend,进入vim编辑后保存
  • 分支管理
    • 切换分支:git checkout 分支名
    • 新建本地分支并切换:git checkout -b 分支名
    • 提交本地分支到远程,创建/更新同名远程分支:git push origin 本地分支名
    • 删除远程分支:git push –delete origin 远程分支名
    • 删除本地分支 (ps:先切换到其他分支,才能删除该分支):git branch -d 本地分支名

常用操作

同步

1.保存本地更改

1
> git add .

2.保存提交

1
> git commit -m "本次提交的备注"

3.本地仓库和远程同步

1
> git pull

4.将提交推到远程仓库

1
> git push

合并分支—分支合并到master / master合并到分支

1.进入要合并的分支并更新(如开发分支合并到master,则进入master目录)

1
2
3
> git checkout master

> git pull

2.查看所有分支是否都pull下来了

1
> git branch -a

3.使用merge合并开发分支

1
> git merge 分支名

4.查看合并之后的状态

1
> git status

5.提交,并解决冲突

1
> git commit -m "备注"

6.推到远程仓库

1
> git push

删除指定提交(只有指定提交被删除)

1.查看log,找到需要删除的commit的前一次commit的hash值(假设是a0ecfc)

1
> git reflog

2.打开文档,将待删除commit前将“pick”改成“drop”

1
> git rebase -i a0ecfc

3.保存文档

4.强制推到远程仓库(本地和远程的提交数据会被清除,谨慎操作,注意备份!)

1
> git push origin -f 

删除已push的提交(回滚,指定提交之后的所有提交都被删除)

1.查看commit

1
2
3
4
5
6
> git log --pretty-log=oneline

假设返回结果:
a9654a671de15581545d06e22f397c2bf076c059 (HEAD -> main, origin/main) 更新readme格式
77c2612cc86d86b566a6416b89f3046e8e41f869 更新readme格式
5bc315cee3657f13c58c596614b524dbfbb1148e 修改readme格式

2.如果想要从“更新readme”撤回到“修改readme”,使用git reset

  • 三种模式根据需要使用:
    • –soft:本地代码无变化,”更新readme格式”的commit被放在暂存区,相当于已经执行了git add .
    • –mixed:本地代码无变化,”更新readme格式”的commit修改没被放在暂存区,如果提交,需要先执行git add .
    • –hard:本地代码变化,强制回滚到指定版本内容,且无法找回
1
> git reset --soft 5bc315cee3657f13c58c596614b524dbfbb1148e

3.查看当前commit,发现“更新格式”commit已经被撤回

1
2
3
4
> git log --pretty-log=oneline

返回结果:
5bc315cee3657f13c58c596614b524dbfbb1148e (HEAD -> main) 修改readme格式

4.强制push (因为当前版本回滚了,比远程分支版本低,不强制执行会报错)

1
> git push --force