代码托管中心的任务:维护远程库
设置签名: 形式: 用户名:bom Email地址:goodMorning@tcl.com 作用:区分不同的开发人员身份 辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任务关系 命令: 项目级别/仓库级别:仅在当前本地库范围内有效 gi config user.name bom git config email goodMorning@tcl.com 系统用户级别:登录当前操作系统的用户范围 git config --global user.name bom git config --global email goodMorning@tcl.com 级别优先级: 就近原则:项目级别优先于系统用户级别。二者都有时,优先采用系统级别的签名 二者都没有是不允许的
git常用指令 git init : 初始化代码仓库 添加至暂存区:git add <=> 删除暂存区中的制定文件:git rm --cached git commit:修改提交至本地仓库
git status:查看文件状态
查看日志: git log 多屏显示控制方式 空格:下一页 b:上一页 q:推出 git log --pretty=oneline git log --oneline git reflog
前进/后退历史版本 基于索引操作 git reset --hard[局部索引值] git reset --haed 31a019d 使用^符号:只能后退 git reset --hard HEAD^ 注:一个表示后退一步,N个表示后退N步 使用~符号:只能后退 git reset --hard HEAD~N 注:表示后退N步
撤销操作 撤销工作区 git checkout 文件名 如已提交到暂存区 git reset HEAD 文件名 (回退工作区) git checkout 文件名
reset命令的三个参数比较 –soft 仅仅在本地库移动HEAD指针 –mixed 在本地库移动HEAD指针 重制暂存区 –hard 在本地库移动HEAD指针 重制暂存区 重制工作区
删除文件并找回
前提:删除前,文件存在时的状态提交到了本地库 操作:git reset --hard [指针位置] 删除操作已经提交到本地库:指针位置指向历史记录 删除操作尚未提交到本地库:指针位置使用HEAD
比较文件差异 git diff [文件名] 将工作区中的文件和暂存区进行比较 git diff [本地库中的历史版本][文件名] 将工作区中的文件和本地库历史记录做比较 git diff 不指定文件名的时候,会比较多个文件的差异
分支 什么是分支: 在版本控制中,使用多条线同时推进多个任务 分支的好处: 同时并行推进对个功能开发,提高开发效率 各个分支在开发工程中,如果某一个分支开发失败,不会对其他分支响,失败的分支直接删除就行。
分支操作: 创建分支 git branch [分支名] 查看分支 git branch -v 切换分支 git checkout [分支名] 合并分支 第一步:切换到接受修改的分支(被合并,增加新内容)上 第二步:执行merge命令 git merge [分支名] 解决冲突 冲突的表现
冲突的解决 第一步:编辑文件,删除特殊符号 第二步:把文件修改到满意为止,保存退出 第三步:git add [文件名] 第四步:git commit -m “日志信息” 注意:此时commit不能带具体的文件名
克隆 命令:git clone [远程地址] 效果: 完整的把远程库下载到本地 创建origin远程库别名 初始化本地库 拉取 pull = fetch + merge git fetch [远程库地址别名] [远程分支名] git merge [远程库地址别名/远程分支名] 解决冲突 要点: 如果不是基于GitHub远程库的最新版所做的操作,不能推送,必须先拉取 拉取下来如果进入冲突状态,则按照“分支冲突解决”操作解决即可 跨团队操作
git rebase 和 git merge 区别 https://blog.csdn.net/liuxiaoheng1992/article/details/79108233 rebase:变基,会把你当前分支的commit放到公共分支的最后面 举例:如果你从 master 拉了个feature分支出来,然后你提交了几个 commit,这个时候刚好有人把他开发的东西合并到 master 了,这个时候 master 就比你拉分支的时候多了几个 commit,如果这个时候你 rebase master 的话,就会把你当前的几个 commit,放到那个人 commit 的后面。 merge 会把公共分支和你当前的commit 合并在一起,形成一个新的 commit 提交
git cherry-pick git cherry-pick可以理解为"挑拣"提交,它会获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上。 当我们需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用git cherry-pick了。 git cherry-pick [commit id] -n:不自动合入 -e:重新编辑提交信息
git cherry-pick --continue, --abort,–quit 当使用git cherry-pick发生冲突后,将会出现如下信息:
$ git cherry-pick 23d9422 error: could not apply 23d9422… [Description]:branch2 commit 3 hint: after resolving the conflicts, mark the corrected paths hint: with 'git add ’ or 'git rm ’ hint: and commit the result with ‘git commit’
这时如果要继续cherry-pick,则首先需要解决冲突,通过git add .将文件标记为已解决,然后可以使用git cherry-pick --continue命令,继续进行cherry-pick操作;
如果要中断这次cherry-pick,则使用git cherry-pick --quit,这种情况下当前分支中未冲突的内容状态将为modified;
如果要取消这次cherry-pick,则使用git cherry-pick --abort,这种情况下当前分支恢复到cherry-pick前的状态,没有改变。
|