Git 常用操作和流程

337 阅读3分钟

基本操作

  • 初始化仓库
 git init
  • 关联到远程仓库
git remote add origin <url>
  • 添加到版本库
//添加全部
git add .
//添加具体文件
git add <文件名>
  • 添加到本地库
git commit -m "提交描述信息"
  • 拉取并合并冲突
git pull origin master

git pull 可以拆分为git fetch 和 git merge

  • 提交本地库到远程库
git push origin master
  • 克隆
git clone <url>
  • 设置用户名和邮箱
//全局设置(所有项目通用)
git config --global user.name "**"
git config --global user.email "**"
//局部设置(不同项目不同)
git config user.name "**"
git config user.email "**"
  • 用户名和密码存储
//全局配置
git config --global credential.helper store
//局部配置
git config credential.helper store

//设置cache时间为1小时
git config credential.helper 'cache --timeout=3600'
  • 查看远程服务器
//查看远程服务信息
git remote
//查看远程服务器详细信息
git remote -v
  • 查看状态
git rstatus
  • 查看日志
git log
  • 版本回退
//回退多少就几个^
git reset --hard HEAD^ 或 git reset --hard HEAD~10
  • 分支查看/创建/切换/合并
//查看本地分支
git branch
//查看所有分支
git branch -a
//创建分支
git branch dev
//切换分支
git checkout dev
//–b参数表示创建并切换
git checkout -b dev
//删除分支
git branch -d dev
//删除远程dev分支,危险命令
git push origin :dev 
//合并dev分支到当前所在分支
git merge dev
//本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name
//本地分支和远程分支的关联
git branch --set-upstream branch-name origin/branch-name

具体需求

  • 创建仓库
//一步操作 也可以拆分成两步
git init <文件夹名> && cd <文件夹名>
touch README.md
git add READEME.md
git commit -m "init"
git remote add origin https:gitee.com/....
//第一次推送master分支,加–u参数,推送到远端并关联master
git push -u origin master
  • 仅拉取仓库某个文件夹
git init
git remote add origin <仓库地址>
git config core.sparsecheckout true
//echo 是所拉取文件路径
echo project/android >> .git/info/sparse-checkout  //注意路径符号 /
git pull origin master
  • 远端仓库新建分支:
方法1:
git checkout -b dev
git branch --set-upstream-to = origin/dev //建立本地到上游(远端)仓的链接 --这样代码才能提交上去
git branch --set-upstream debug origin/debug //其中debug为创建的分支
git push origin dev

git branch --unset-upstream master //取消对master的跟踪 按需使用

方法2:
git branch -b stage2
git push origin 本地分支名:远端分支名xx  // 在服務器新建新分支名xxx

 
对比:
git branch -b stag2
git push origin stage2:refs/for/stage2 // 代码入庫命令,不会新建新分支在远端
  • 冲突解决流程
git merge dev
...产生冲突
git status
...查看状态
//<<<<<<<,=======,>>>>>>>标记不同分支内容,其中<<<HEAD 是主分支修改的内容,>>>>>dev 是dev上修改的内容
git add <文件>
git commit -m "***"
  • bug fix流程
//假定目前在dev分支
//储藏当前工作,用于后续恢复
git stash
//创建bugfix分支
git checkout -b bugfix
//完成修改并提交
git add .
git commit -m "bugfix"
//切换至master分支完成合并后删除bugfix
git checkout master
git merge bugfix
git branch -d bugfix
//切换至dev分支恢复开发
git branch dev
//查看状态和暂存内容
git status
git stash list
//恢复隐藏工作
git stash pop
  • 合并远程分支
//切换至需要合并分支
git checkout dev-branch
//本地开拉取开发分支
git pull origin dev-branch
//切换至master分支
git checkout master
//本地开拉取master分支
git pull origin master
//合并分支
git merge dev-branch
//推送到远程仓库
git push origin master
//根据需要删除本地分支
git branch -d dev-branch
//根据需要删除远程开发分支 谨慎操作
git push origin :dev-branch