git命令行操作

319 阅读2分钟

一、拉取代码

  1. git clone 仓库地址; 一般代码仓库会有master和dev分支,git clone后代码一般是在master分支,可以使用git branch -a查看本地和远程分支
  2. git checkout 远程分支名; 切换到远程分支
  3. git checkout -b 分支名; 创建并且切换到新建的本地分支上,(是git branch 分支名,git checkout 分支名,的合并命令)
  4. git pull; 未设置追踪时唤起本地追踪远程提示,bash提示:git branch --set-upstream-to=origin/ dev
  5. 本地追踪远程,从clone代码到新建本地开发分支,已经完成了,可以开始工作了
git checkout remotes/origin/dev
git checkout -b dev
git pull
git branch --set-upstream-to=origin/dev dev
git pull

二、提交代码

  1. git pull  多人在同一分支工作时先拉取代码,可以避免自动merge,保持分支线的美观
  2. git add .  或者(git add 文件名)
  3. git commit -m ''
  4. git pull  防止多人在同一个分支上工作时,快要下班时,你commit时别人push了代码
  5. git push

三、合并代码

当项目按照功能分支进行开发时,可以有两种方式,1:本地先merge再push;2:先push再远程merge

  • 方式一:可以不建远程分支

    1. git checkout dev
    2. git pull
    3. git merge my-feat  //在本地把my-feat合并到本地dev分支
    4. git push
  • 方式二:必须有远程分支

    1. 正常提交代码
    2. 一般是在gitlab上发起merge request,同事review代码后,点击merge

四、删除分支

功能开发完成后,可以删除该功能分支,删除分支需要切换到其他分支

  1. git branch -D 分支名  删除本地分支
  2. git push origin :分支名  删除远程分支(或者git push origin --delete 分支名)

五、git常用操作

  • git stash  暂存代码

  • git stash pop  弹出代码

  • git stash list  查看stash列表

  • git status  查看状态

  • git diff  查看改了那些代码

  • git branch -vv  查看本地分支和远程分支的版本差异,落后了或超前了几个版本

  • git log  查看log

  • git log --graph  查看log分支线

  • git reset --soft log的hash值  代码回滚到指定版本,不删除工作空间改动代码,撤销commit,不撤销git add .

  • git reset --hard log的hash值  代码回滚到指定版本,删除工作空间改动代码,撤销commit,撤销git add .

  • git commit --amend  commit注释写错了,进入vim,修改注释

六、可能遇到的问题

  1. 代码仓库过大,一般大于1G时,可能clone不下来,在执行git clone命令时报错:fatal: early EOF,可以先clone最近一次的代码

    • git clone --depth 1 仓库地址  //执行部分clone
    • git fetch --unshallow
    • git pull --all
  2. git branch -a看不到远程分支

    • git remote set-branches --add origin [分支名称]
    • git fetch origin [分支名称]
    • git branch -a