git 常用命令

202 阅读2分钟

一. git 和 svn 比对

  • git 是分布式的版本管理工具,没有中央版本库

  • git能很方便的离线进行代码版本管理,而不需要与服务器交互

  • git是三级结构,工作区/暂存区/版本库,中间多了一层暂存区stage,该结构保证git管理的是修改的内容,而不是文件

  • git版本回退非常方便和快捷 (git 版本跳转是指针的移动)

  • git提交的ID采用hash值表示,因为分布式

  • git切换分支修改BUG非常的方便,可以保存现场

二. git 常见使用问题

设置git 不输入密码

git config --global credential.helper store

获取远程分支到本地

git branch -a
git fetch origin branch_name

冲突合并方法

  1. 提交本地修改 git add . && git commit -m "xxx"
  2. 拉取远程分支 git pull
  3. 合并 git mergetool
  4. 提交合并 git commit -m "merge conflict"
  5. 提交远程分支 git push

多人同步开发减少merge记录

  1. git add .
  2. git pull
  3. 处理merge
  4. git commit -m "XXX"
  5. git push

切换分支修改bug

  1. 保存现场 git stash
  2. 切换分支 git checkout master && git branch -b issue-01
  3. 修改提交 git add . && git commit -m "xx"
  4. 切回开发分支 git checkout dev
  5. 回到现场 git stash pop

回退某次commit

  1. git log 找到 commit id
  2. git reset --hard commit_id

三. 常见命令

版本状态查看:

git status

版本提交

git add app.js | git add . | git add * --

提交文件到缓冲库

git commit -- 从缓冲库提交到版本库

文件比较

git diff app.js

查看log

git log | git log --pretty=oneline

版本库回滚

git reset --hard HEAD^ | git reset --hard HEAD^^ | git reset --hard HEAD~10

跳转某个版本

git reset --hard 9fecab****

查看历史命令 (查找某个版本的commit id)

git reflog

版本修改回退

回退没有提交到stage的修改

git checkout --app.js

回退已经提交到stage的修改

git reset HEAD app.js

回退版本库中的修改

git reset --hard HEAD^

版本库删除文件

git rm app.js git commit

暂存库删除文件

git checkout --app.js

添加远程库

git remote add origin git@github.com:hucaihua/test

首次推送文件

git push -u origin master

推送修改文件到远程库

git push origin master

推送分支

git push origin dev

clone 远程库

git clone GIT_URL

git 创建分支 并且切换分支

git checkout -b dev

切换分支

git checkout dev|master

查看分支

git branch

创建分支

git branch dev

删除分支

git branch -d dev

删除远程分支

git push origin --delete baoxi

强制删除分支

git branch -D dev

合并分支

git merge --no-ff -m "merge no ff" dev

打tag

git tag v1.0