一、git的基本命令
# 初始化本地仓库
git init
# 添加文件(文件夹)到暂存区
git add 文件(文件夹)
# 查看文件当前状态
git status
# 提交暂存区文件中指定的文件到本地仓库
git commit 文件(文件夹) -m "提交说明"
# 提交暂存区中全部的文件到本地仓库
或(git commit -m "提交说明")
# 查看仓库文件列表
git ls-files
# 检出git本地库文件到工作区
git checkout -- 文件名
# 删除git版本库文件
git rm 文件名
*** 批量处理文件 ***
# 添加所有文件
git add .
# 提交暂存区中全部的文件到本地仓库(/** all是给这次提交的备注 **/)
git commit -m 'all'
# 提交到远程分支
git push -u origin [远程分支名称]
*** 文件回溯 ***
# 文件差异性比较
git diff HEAD-- 文件名
# 简化提交日志输出(提交日志hash值 HEAD指针指向说明)
git log --pretty=oneline
# 执行回退/回到操作(向前回退|回到未来)
git reset --hard 版本hash值(5-8个字符)
# 查看当前用户最近操作日志
(后悔药)git reflog
*** 分支操作 ***
# 删除已合并的本地分支(如果分支上有未合并的提交,Git会拒绝删除以保护尚未整合的工作)
git branch -d <branch_name>
# 强制删除本地分支(如果您确定要删除一个分支,即使它包含尚未合并到其他分支的提交)
git branch -D <branch_name>
# 删除远程分支
git remote rm origin
# 获取远程指定分支
git fetch origin <branch_name>
*** 远程仓库操作 ***
# 查看当前远程仓库
git remote -v
# 删除远程仓库
git remote rm origin
# 添加远程仓库
git remote add origin [远程仓库URL]
二、本地仓库和远程仓库之间传递数据
①:先在远程仓库中新建一个仓库(新建仓库啥都不要选,就选那个公开或者私有就ok )
②:找到仓库生成的最后两行代码,在Git Bash中进行操作即可(也就是已有仓库那个选项卡**** )
三、下载远程仓库
# 下载远程仓库
git clone (ssh的网址)
一个模块就是一个master(一般为项目的根目录),如果想要对某一模块进行bug的修复或者功能的更新,就可以在这个master上新建一个或多个分支,之后就可以进行合并或者组合操作。
可以想作为大鱼吃小鱼,小鱼吃虾米。
四、使用git新建分支并上传
查看一下分支结构
git branch
如果没有你自己的分支,新建分支
git checkout -b 分支名称
已有分支,切换到当前分支
git checkout 分支名称
将要上传的文件提交
git add .
提交文件
git commit -m '提交的描述'
push到远程仓库
git push origin 你的分支名称
五、合并分支
第一种情况:目标:将dev分支合并到master分支(这里的dev分支只是举个例子)
1.1、首先切换到master分支上
git checkout master
1.2、如果是多人开发的话 需要先把远程master上的代码pull下来(很重要!!!不然可能导致一会合并完之后,准备推送到远程时,报冲突问题,很重要!!!)
# 不管是个人开发还是团队开发,为了保险期间还是先pull 血泪教训
git pull origin master
1.3、然后我们把dev分支的代码合并到master上
# 如果有冲突,手动解决冲突就行。
git merge dev
1.4、然后查看状态及执行提交命令
git status
On branch master Your branch is ahead of 'origin/master' by 12 commits. (use "git push" to publish your >local commits) nothing to
commit, working tree clean
# 上面的意思就是你有12个commit,需要push到远程master上
> 最后执行下面提交命令
git push origin master
第二种情况: 合并某个分支上的单个commit(cherry-pick命令)
比如 feature 分支上的commit 82ecb31非常重要,它含有一个bug的修改,或其他人想访问的内容。
无论什么原因,你现在只需要将82ecb31合并到master,而不合并feature上的其他commits;
所以我们用git cherry-pick命令来做:
git checkout master
git cherry-pick 82ecb31
这样就好啦。 现在82ecb31就被合并到master分支,并在master中添加了commit(作为一个新的commit)。
cherry-pick和merge比较类似,如果git不能合并代码改动(比如遇到合并冲突),git需要你自己来解决冲突并手动添加commit。
这里git cherry-pick每次合并过来会显示文件冲突(其实并没有冲突代码部分,只需手动解决即可)。