




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
git常用操作目录git常用操作1一、仓库创建21.本地新建一个git仓库22.本地克隆一个远程仓库23.同步远程仓库代码到本地24.同步本地代码到远程仓库3二、基本配置32.1.给Git着色32.2.设置文本编译器32.3.设置比较工具和合并工具3三、基础知识3git中文件的状态分类3三、代码提交43.1.查看目前代码的修改状态53.2.查看代码修改的内容53.3.暂存需要提交的文件63.4.提交已暂存的文件63.5.同步到服务器6四、代码撤消与回退64.1.回退已提交的代码64.2.撤消已暂存的文件74.3.撤消已修改的文件74.4.撤消未跟踪文件7五、提交记录查询7六、分支管理71.克隆代码72.创建本地工作分支73.删除分支84.切换分支85.合并分支8七、应用标签8一、仓库创建1. 本地新建一个git仓库git -bare init如果是需要作为服务器仓库的,推荐加bare,否则以后其他仓库push代码到此仓库时会有一些麻烦。即:git push 错误在使用Git Push代码到数据仓库时,提示如下错误:remote rejected master - master (branch is currently checked out)remote: error: refusing to update checked out branch: refs/heads/masterremote: error: By default, updating the current branch in a non-bare repositoryremote: error: is denied, because it will make the index and work tree inconsistentremote: error: with what you pushed, and will require git reset -hard to matchremote: error: the work tree to HEAD.remote: error:remote: error: You can set receive.denyCurrentBranch configuration variable toremote: error: ignore or warn in the remote repository to allow pushing intoremote: error: its current branch; however, this is not recommended unless youremote: error: arranged to update its work tree to match what you pushed in someremote: error: other way.remote: error:remote: error: To squelch this message and still keep the default behaviour, setremote: error: receive.denyCurrentBranch configuration variable to refuse.To git192.168.1.X:/var/git.server/./web! remote rejected master - master (branch is currently checked out)error: failed to push some refs to git192.168.1.X:/var/git.server/./web这是由于git默认拒绝了push操作,需要进行设置,修改.git/config添加如下代码: receive denyCurrentBranch = ignore注意上面修改的是代码仓库的config,而不是本地分支的config在初始化远程仓库时最好使用 git -bare init 而不要使用:git init 如果使用了git init初始化,则远程仓库的目录下,也包含work tree,当本地仓库向远程仓库push时, 如果远程仓库正在push的分支上(如果当时不在push的分支,就没有问题), 那么push后的结果不会反应在work tree上, 也即在远程仓库的目录下对应的文件还是之前的内容,必须得使用git reset -hard才能看到push后的内容.添加文件git add . / add allgit add *.txt / add all txt file添加文件后,直接commit就完成本地仓库的创建的了。2. 本地克隆一个远程仓库 克隆远程仓库git clone 这里,name可以不写,默认origindirectory也可以不写,默认使用远程git一样的根目录名。 添加远程仓库。git remote add name可以任意取。 url必须是确实存在的git仓库。3. 同步远程仓库代码到本地git pull 如果pull时提示“You asked me to pull without telling me which branch you want to merge with”, 说明本地有新建分支且已同步到服务器上,当从服务器下载代码时需要在本地config中配置该分支的merge信息。配置方法可以参考下面例子: $ git config branch.master.remote origin /master是分支名,origin是远程仓库名 $ git config branch.master.merge refs/heads/master具体可参考/blog/static/171040579201232184549211/4. 同步本地代码到远程仓库git push 如果push时提示“refusing to update checked out branch: refs/heads/master”,说明远程仓库创建是没有使用bare选项。解决这个冲突需要远程仓库管理员:具体可以是将远程仓库当前分支切换到其他分支(如谁也不会使用的分支),或者按照提示内容,设置denyCurrentBranch = ignore。具体可参考/mengdaant/item/62dc182908bf25f950fd87ff二、基本配置2.1. 给Git着色git config color.ui true2.2. 设置文本编译器git config core.editor XXX如果是需要配置为notepad,则core.editor=D:/Progra1/Notepad+/notepad+.exe -multiInst -notabbar -nosession noPlugin2.3. 设置比较工具和合并工具git config diff.tool XXXgit config merge.tool XXX使用时,如果直接 git diff命令无效,可以尝试git difftool 和 git mergetool使用beyondcompare做默认比较和合并工具,可以参考官网说明/support.php?zz=kb_vcs三、基础知识git中文件的状态分类 committed已提交状态 staged已暂存状态随时可以通过提交命令完成提交 modified已修改状态文件内容已修改,但是还没有暂存。具体按照跟踪状态又可以分为两类:a 修改的文件已跟踪这种情况一般是修改工程已有的文件产生的状态。b 修改的文件尚未跟踪这种情况一般是新建文件后产生的状态。两类状态都是可以先通过暂存命令完成暂存,然后通过提交命令完成提交。 ignored不纳入版本跟踪状态此状态与未跟踪状态不同,未跟踪还是可以看到文件的修改状态等。但是ignored状态是完全看不到文件的任何修改状态。对git来说,它就像是一个不存在的文件一样。示意图三、代码提交代码提交一般有五个步骤:1.查看目前代码的修改状态2.查看代码修改内容3.暂存需要提交的文件4.提交已暂存的文件5.同步到服务器3.1. 查看目前代码的修改状态提交代码之前,首先应该检查目前所做的修改,运行git status命令 a) 已暂存 (changes to be committed)new file /表示新建文件modified /表示修改文件deleted /表示删除文件b) 已修改 (changed but not updated)modified /表示修改文件deleted /表示删除文件另外,git 给出了可能需要的操作命令,git add/rm, git checkout -c) 未跟踪 (untracked files)3.2. 查看代码修改的内容 git diff 比较某文件与最近提交节点的差异。注意:如果该文件已暂存,那么应该使用git diff cached git diff 比较某文件在提交节点a,节点b的差异。技巧:如果省略后面一个hashcode,则默认表示与上一提交节点比较。(也可以利用运算符)3.3. 暂存需要提交的文件 如果是新建的文件git add 如果是修改的文件则git add 如果是删除的文件则 git rm 3.4. 提交已暂存的文件 git commit注意注释填写规范。 git commit -amend修改最近一次提交。有时候如果提交注释书写有误或者漏提文件,可以使用此命令。3.5. 同步到服务器 同步到服务器前先需要将服务器代码同步到本地命令: git pull如果执行失败,就按照提示还原有冲突的文件,然后再次尝试同步。命令:git checkout - 同步到服务器命令: git push origin 如果执行失败,一般是没有将服务器代码同步到本地导致的,先执行上面的git pull命令。四、代码撤消与回退4.1. 回退已提交的代码 git reset -hard HEAD回退整套代码到最近一次提交后的状态。参数 -hard 表示删除自该次提交后所有的修改记录(未跟踪文件除外)。如果需要保留目前的修改,则执行git reset - soft HEAD。 git reset -hard 回退代码到指定的某次提交状态。(hashcode是该次提交的哈希码)。同样,参数hard同上。 git没有办法回退单个文件到某次提交状态。如果确实需要这么做,那么应该先取得某次提交时该文件的内容,然后覆盖现有的这个文件。4.2. 撤消已暂存的文件 git reset HEAD 4.3. 撤消已修改的文件 git checkout - 4.4. 撤消未跟踪文件 rm 如果加上参数-rf,那么表示删除文件夹内所有子文件。 git clean -dxf 清除所有未跟踪文件,包括纳入ignored的文件。如果要保留ignored的文件修改,使用参数-df五、提交记录查询 git log -author=”查询某人的提交记录 git log 查询某文件的提交记录一般可以借助可视化工具,如mysgit,tortoiseGit六、分支管理1. 克隆代码 git clone 2. 创建本地工作分支 git checkout -b 创建并切换到新分支。如果是从远程分支创建一个本地同名分支,则git checkout -b git branch 创建新分支,但不切换过去3. 删除分支 git branch -D 强制删除分支,即使该分支上有未提交的内容。(没有-D参数时,只有当该分支没有未提交内容时才可以删除)4. 切换分支 git checkout Note: 分支记录的是committed的内容,所以所有未提交的修改不同分支中都是共享的,也就是都能看到。 git stash将分支上所有修改内容暂时保存起来。有时候工作进行到一半,需要切换到另一个分支,但是这时候又不适合提交,可以使用git stash暂时保存修改的内容,回头在利用git stash ap
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程建筑施工培训
- 四边形教材解读
- 职高九月班上工作总结
- 有机合成基础培训大纲
- 西点基础培训课件
- 云南省昭通市昭阳区苏家院乡中学2026届化学九上期中质量检测模拟试题含解析
- 江苏省南通市紫石中学2026届英语九上期末达标检测模拟试题含解析
- 山西简易轻钢房施工方案
- 铝挤压车间安全培训
- 2026届山东德州市武城县化学九年级第一学期期中考试试题含解析
- 2025十堰张湾区城市社区党组织书记专项招聘事业编制人员考试笔试试卷【附答案】
- 2025年国防教育知识竞赛试题(附答案)
- 2025国庆节前安全教育培训
- 国歌课件教学课件
- 江苏省家政服务合同派遣制4篇
- 农业农村部在京事业单位招聘考试真题2024
- 农村电商公共服务体系的建设与完善-以资阳市雁江区为例
- 东营市专业技术人员继续教育公共服务平台-题库(答案)
- 2024八年级道德与法治上册知识点
- 航模课件教学课件
- 看守所巡控岗位课件
评论
0/150
提交评论