# TestGit **Repository Path**: cyhgyq/test-git ## Basic Information - **Project Name**: TestGit - **Description**: 学习git - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-07-11 - **Last Updated**: 2022-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 方法1. 找到 Beyond Compare 的安装路径,删除 BCUnrar.dll 方法 2. 修改注册表。呼出开始菜单,在搜索栏中输入 regedit,点击 regedit.exe 程序,打开注册表编辑器, 依次展开"计算机\HKEY_CURRENT_USER\Software\Scooter Software\Beyond Compare 4",找到 CacheId 并删除, # Git git的流程管理图: clone(克隆): 从远程仓库中克隆代码到本地仓库 checkout(检出): 从本地仓库中检出一个分支然后进行修订 add(添加): 在提交前先将代码提交到暂存区 commit(提交): 提交到本地仓库,本地仓库中保存修改的各个历史版本 fetch(抓取): 从远程仓库,抓取到本地仓库,不进行任何合并动作,一般操作比较少 pull(拉取): 从远程库拉到本地库,自动进行合并(merge), 然后放到工作区,相当于fetch+merge push(推送): 修改完成后,需要和团队成员共享代码时, 将代码推送到远程仓库 安装git,一直点下一步就行 安装完后,一定要设置用户名和邮箱地址 打开Git Bash git config --global user.name "chenyihong" git config --global user.email "1171875284@qq.com" 查看配置信息 git config --global user.name git config --global user.email 解决Git Bash乱码的问题 git confit --global core.quotepath false $(git_home)/etc/bash.bashrc 文件最后加入下面两行 export LANG="zh_CN.UTF-8" export LC_ALL="zh_CN.UTF-8" 本地仓库 git init 出现.git目录表示创建本地仓库成功 基本操作命令 新创建的文件,是未跟踪(untracked)的,需要git add 进暂存区, 查看状态,有红色的文件 跟踪的文件修改后,也要git add 进暂存区(staged), 查看状态,有绿色的文件 git add file01.txt git add . //表示添加所有文件到暂存区 git commit 将暂存区的内容提交到本地仓库(repository) 查看状态, 没有文件,表示所有文件都处理了。 git commit -m "添加注解" //必须添加注解 查看状态 git status 查看提交历史 git log git log 查看所有的详细信息 --all所有分支,--pretty=oneline一行显示方便查看id, --abbrev-commit 使信息更简短, --graph以图形的形式显示 git log --pretty=oneline --abbrev-commit --all --graph 这样更方便查询信息,最前面一列是修改id,很重要 git log --pretty=oneline --abbrev-commit --all --graph -decorate 苹果电脑使用这个指令 版本回退命令:git reset --hard commitID 其中commitID是git log中打印的第一列, 双击复制这一列,鼠标滚轮滚动或右键粘贴就能将内容复制到指定地方 查看已经删除的提交记录:git reflog ,可以查看所有的git命令操作,如果回退后,使用git log无法获得之后的id, 又想恢复回退前的数据,可以git reflog找的id, 再执行一下回退操作就可以了。 如何配置哪些文件不需要git add . 可以新建.gitignore文件,如果.开头的文件创建不了,可以查看百度 分支 git log 打印出HEAD->master 其中HEAD指向哪里,表示现在就在什么分支 查看本地分支: git branch 创建本地分支: git branch 分支名 //会将当前分支的内容,复制到创建的分支 切换分支:git checkout 分支名 //切换前需要commith和push 还可以切换到一个不存在的分支(创建并切换):git checkout -b 分支名 //存在就切换,不存在就创建 合并分支:git merge 分支名称 //一般把其他分支合并到master分支上面,先把分支切换的master, 再git merge dev01 表示将dev01分支合并到当前的master分支上面。 删除分支,不能删除当前分支,只能删除其他分支,git branch -d 分支名字, 删除分支时需要各种检查, git branch -D 分支名称,不做任何检查,强制删除,如果分支上的内容没有合并到其它分支,不能-d删除,只能-D强制删除。 解决合并分支冲突:使用合并时,会提示合并失败,提示哪些文件冲突了,文件中会存在两个分支的内容,需要打开文件就行删除和修改。然后git add .; git commit 分支使用流程:master分支,表示生产分支,线上分支,主分支 develop分支,表示开发分支,可能会有很多开发分支 hotfix/xxx分支,从master派生的,一般作为线上bug修复使用,修复完后,合并到master,test,develop分支 release/xxx分支,只作为用来标记每次上线的提交节点 有些还有test分支和pre预发布分支 远程仓库 常用的有github,gitlab,gitee 如何将本地代码推送到gitee上呢? 一种方式是使用gitee的账号和密码来推送 一种方式是使用SSH公钥来推送 ssh-keygen -t rsa 然后不断的回车,如果有公钥,则会自动覆盖 因为Git Bash里面有很多公钥,需要先备份: mv ~/.ssh ~/.ssh.bark2 然后 ssh-keygen -t rsa 其他不要管,一路回车。 获取公钥:cat ~/.ssh/id_rsa.pub 复制这些内容,Git Bash选中的内容会自动复制 点击gitee设置,找到SSH公钥,粘贴上面复制的内容, 上面的标题可以随便填, 点击确定,会弹出输入gitee的密码 在Git Bash验证是否配置成功,ssh -T git@gitee.com 回车 输入 yes 回车 可以看到蓝色的succesfully的打印,表示配置成功 找到gitee仓库,点击SSH的tab, 复制后面的内容 在Git Bash里面切换到master分支,输入git remote add origin 上面复制的内容 回车 表示添加一个远程仓库,取名字 origin 一般默认都是origin 查看当前仓库有没有远程仓库 git remote 本地仓库代码推送到远程仓库:git push origin master 回车,会提示[new branch] master -> master 表示远程仓库也创建了一个master分支,并且本地仓库的master跟远程仓库的master相对应。 git push的完整形式: git push [-f] [--set-upstream] [远程仓库名 [本地分支名][:远程分支名]] 如果分支名一样,可以省略后面的远程分支名。 -f表示有冲突时,强制覆盖远程分支的文件。 如果没有-f,则有冲突时推送失败 --set-upstream的作用,将本地分支和远程分支建立对应关系 git push --set-upstream origin master:master 回车 --- 在第一次推送时,绑定关系 然后有这个对应关系后,第二次push就不需要写那么复杂了,直接 git push 回车 就可以了。 git remote -vv 查看本地分支和远程分支的对应关系,必须在上一个git push命令中指定过--set-upstream才有对应关系。 克隆远程仓库 git clone gitee的SSH中复制的内容 [新的文件夹] ----新的文件夹可以不指定,表示克隆到当前文件夹 抓取 git fetch [远程仓库名] [远程分支名] 将远程仓库的更新都抓取到本地,不会进行合并 如果不指定远程仓库名和分支名,则抓取所有分支 一般可以不指定 git merge origin/master 合并origin/master的内容到本地仓库,这样工作区的代码才会是最新的。 拉取 git pull [远程仓库名] [远程分支名] 将远程仓库的修改拉倒本地并自动进行合并,等同于fetch + merge 如果不指定远程仓库名和分支名,则抓取所有分支,并更新合并当前分支 解决远程仓库冲突, 有冲突时push会失败,然后pull拉取最新代码,删除和修改冲突文件,再add、commit、push idea中使用git idea配置git file---seting---version control --- 配置安装目录和分支 VCS---创建git仓库---然后会出现git的菜单栏 点击git菜单的绿色的√进行提交,需要输入commit的提示 最下方有一个tab出现Version Control栏----再点击log---查看各种信息---双击打开信息文件,查看各种信息 VCS---git---push---Define remote---输入SSH---ok 第二次提交---菜单绿色的√--输入提示---点击对话框右下角commit的下拉---点击Commit and Push... ---- 这样提交和push会一起实现 克隆操作: VCS --- Checkout from Version Control Git --- SSH -- 一路yes 拉取操作:点击git菜单的蓝色箭头---有冲突文件会有提示 冲突的文件被解决,右键这个文件---git---add一下,再去commit idea右下角有分支显示 --- 点击它---new branch --- 不推荐 idea--Version Control --- Log---下面有很多个点---右键---创建分支,可以在不同的点创建分支,对应这个点的数据--Log的右上角就会有分支图表------推荐 切换分支: 点击idea右下角的git版本---选中需要切换的分支---Check out切换分支 合并分支: 切换的操作分支----点击idea右下角的git版本---选中某个分支(被合并的分支)--- Merge into Current --- 合并分支成功 几条铁令: 1: 切换分支前先提交本地的修改 2: 代码及时提交,提交过了就不会丢 3: 遇到任何问题都不要删除文件目录