git(git book)是版本控制工具,对于需要持续输出和多人合作的程序或日常工作来说,版本控制都是记录内容变更最佳方式。
下面就介绍一些开发工作中常用的一些命令,以及命令组合的操作。
常用的基本命令
git add . 添加代码到缓存区
git commit -m "msg" 提交一个commit信息
git push 把提交后的内容推到远端仓库
git push -f 把代码强制推到远程(谨慎操作)
git pull 把项目从远端拉下来
git pull --rebase 把强推到远端的代码,强制拉取下来
git status 检查当前分支状态
git checkout branch_name 切换到本地分支branch_name(前提是此前状态没有冲突)
git commit --amend 修改已commit的注释
git fetch origin 把远程origin最新代码下载到本地
git checkout -b branch_name origin/branch_name 创建upstream远端同名分支(基于什么分支创建)
git push origin branch_name1:branch_name1 本地分支branch_name1指向origin分支branch_name并提交代码(建议本地分支和远程分支名称一样)
git push origin branch_name1:branch_name1 -f 强制将origin分支代码和本地分支一致(谨慎操作)
git rebase -i commit_id_x 多个commit的信息合并产生一个新的commit
git log 查看提交信息(包括提交人、提交时间、提交commit输入的msg)
命令的组合使用
创建一个本地仓库
创建一个本地仓库,把代码下载到本地
git clone url
仓库初始化
git init
添加远程仓库url
git remote add url
添加上游仓库,上游仓库指向本地仓库
git branch --set-upstream-to=origin/remote_branch your_branch
如果自己的本地仓库与远程仓库不一致该如何处理
解决方案
将远程仓库的master下载到本地的分支上
git fetch origin msater:tmp
查看tmp分支与本地有什么不同
git diff tmp
将tmp分支与本地分支结合
git merge tmp
如果有冲突,先解决冲突,解决完冲突后
把解决后代码加入缓冲区
git add 路径/文件名
合并提交信息
git commit -m “msg”
提交到远程分支
git push origin master:dev
删除分支
git branch -d tmp
如果在dev分支被锁之后修复了一个bug,应该如何操作
解决办法
先更新自己本地仓库的master与远端一致
git fetch origin dev
git pull
在自己dev分支中提交修复
git add .
git commit -m "XXX"
git push origin dev:dev -f
基于本地master开一个分支master-fixbug
git checkout master
git checkout -b master-fixbug
把自己在原始分支中提交的commit-id复制下来,并切到master-fixbug
git checkout master-fixbug
git cherry-pick commit_id
git push master-fixbug:master-fixbug -f
(可视化操作)推上自己远程分支之后,创建一个merge,提交到公司远程仓库的master,等待代码review之后,merged进仓库
出现多个commit
解决方法(提交内容中包含别人的代码)
回退到某一版本
git reset --hard 版本id
拉取origin使其保持在一条线上
git fetch origin
把本地内容同步到origin
git push origin fixbug:dev -f
先更到这里,此文会持续更新,顺便推荐一个好用的git工具:smartGit。