Git教程 冷不防 2022-09-28 13:04 164阅读 0赞 在线推荐教程: [https://lvwzhen.gitbooks.io/git-tutorial/content/][https_lvwzhen.gitbooks.io_git-tutorial_content] 一、安装Git (1)Linux * 在Linux上安装Git 首先,你可以试着输入git,看看系统有没有安装Git * 如果你碰巧用Debian或Ubuntu Linux,通过一条sudo apt-get install git就可以直接完成Git的安装,非常简单 * 如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:./config,make,sudo makeinstall这几个命令安装就好了。 (2)Mac OS X * 一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/。 * 第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。 (3)windows msysgit是Windows版的Git,从 [https://git-for-windows.github.io/][https_git-for-windows.github.io] 安装完成后,在开始菜单里找到 “Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功! 安装完成后,还需要最后一步设置,在命令行输入: $ git config --global user.name "Your Name" $ git config --global user.email "email@example.com" 注意 git config 命令的 \--global 参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。 二、创建版本库 创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit pwd命令用于显示当前目录 第二步,通过git init命令把这个目录变成Git可以管理的仓库: $ git init 三、把文件添加到版本库 把文件 添加到 git目录 仓库,分两步: 第一步,使用命令git add ,注意,可反复多次使用,添加多个文件; 第二步,使用命令git commit,完成。 git add dir1 ( 添加dir1这个目录,目录下的所有文件都被加入 ) git add f1 f2 ( 添加f1,f2文件) git add . ( 添加当前目录下的所有文件和子目录 ) 用命令git commit告诉Git,把文件提交到仓库 $ git commit -m "wrote a readme file" 先执行add再执行commit(commit备注内容最后有实际意义) 实际上,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支,也就是说,每次修改,如果不add到暂存区,那就不会加入到commit中 可能出现的问题: windows使用git时出现:warning: LF will be replaced by CRLF 解决办法: $ rm -rf .git // 删除.git $ git config --global core.autocrlf false //禁用自动转换 然后重新执行: $ git init $ git add . 四、git文件管理命令 `` $git status命令可以让我们时刻掌握仓库当前的状态(是否修改,是否准备提交) $git diff 顾名思义就是查看difference $git log 查看修改版本历史记录 Git允许我们在版本的历史之间穿梭,使用命令 $git reset --hard commit\_id。(commit\_id课不必写全) 穿梭前,用 $git log可以查看提交历史,以便确定要回退到哪个版本。 要重返未来,用 $git reflog查看命令历史,以便确定要回到未来的哪个版本。 git删除修改 * 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令$git checkout -- file。 * 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令$git reset HEAD file,就回到了场景1,第二步按场景1操作。 $git rm filename用于删除一个文件,假如删错了使用 $ git checkout -- filename 命令可以采用版本中最新的替换回来 五、远程仓库 第一步:创建github账户 第二步:创建SSH key $ ssh-keygen -t rsa -C "youremail@example.com" 你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。 如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id\_rsa和id\_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id\_rsa是私钥,不能泄露出去,id\_rsa.pub是公钥,可以放心地告诉任何人。 第三步:登陆GitHub,打开“settings”,“SSH and GPG Keys”页面: 然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id\_rsa.pub文件的内容 第四步:创建远程仓库 首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库: ![Image 1][] 在Repository name填入 仓库名,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库: 目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。 现在,我们根据GitHub的提示,在本地的仓库下运行命令: $ git remote add origin [https://github.com/clayJa/warehouse.git][https_github.com_clayJa_warehouse.git] $ git push origin master 从现在起,只要本地作了提交,就可以通过命令: $ git push origin master 从远程仓库克隆 用命令git clone克隆一个本地库: $ git clone https://github.com/clayJa/Ivan(替换为自己需要克隆的地址) **多人协作的工作模式** * 查看远程库信息,使用git remote -v; * 本地新建的分支如果不推送到远程,对其他人就是不可见的; * 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交; * 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致; * 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name; * 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。 * 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功! * 如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。 六、创建、合并分支 首先,我们创建dev分支,然后切换到dev分支: $ git checkout -b dev(分支名) git checkout命令加上-b参数表示创建并切换,相当于以下两条命令: $ git branch dev(分支名) $ git checkout dev(分支名) 然后,用git branch命令查看当前分支: $ git branch git branch命令会列出所有分支,当前分支前面会标一个\*号 然后,我们就可以在dev分支上正常提交,然后提交: $ git add . 如果dev分支的工作完成,我们就可以切换回master分支: $ git checkout master 把dev分支的工作成果合并到master分支上: $ git merge dev(分支名) git merge命令用于合并指定分支到当前分支。 合并完成后,就可以放心地删除dev分支了: $ git branch -d dev(分支名) 删除后,查看branch,就只剩下master分支了: $ git branch 注意: 当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。 用git log --graph命令可以看到分支合并图。 修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除; 当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop(恢复的同时把stash内容也删了),回到工作现场。 你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令: $ git stash list可用来查看之前存的工作现场 $git stash apply stash@\{0\} 恢复指定stash 但是恢复后,stash内容并不删除,你需要用git stash drop来删除; 如果要丢弃一个没有被合并过的分支,可以通过git branch -D name(分支名)强行删除。 七、标签管理 在Git中打标签非常简单,首先,切换到需要打标签的分支上: $ git branch $ git checkout master 然后,敲命令git tag name就可以打一个新标签: $ git tag v1.0 可以用命令git tag查看所有标签: $ git tag 有时候,如果忘了打标签,方法是找到历史提交的commit id,然后打上就可以了: $ git tag v0.9 6224937(commit id) 还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字: $ git tag -a v0.1(标签名) -m "version 0.1 released"(说明) 3628164(commit id) 用命令$git show tagname可以看到说明文字 删除标签: (1)未推送到远程仓库 $git tag -d tagname (2)已推送到远程仓库 先从本地删除: $git tag -d tagname 然后,从远程删除。删除命令也是push,但是格式如下: $git push origin :refs/tags/tagname 命令$git push origin tagname可以推送一个本地标签; 命令$git push origin --tags可以推送全部未推送过的本地标签; **使用Github** 在GitHub上,可以任意Fork开源仓库; 自己拥有Fork后的仓库的读写权限; 可以推送pull request给官方仓库来贡献代码。 **自定义Git** $ git config --global color.ui true ,Git会适当地显示不同的颜色 一条很硬的连接:https://github.com/clayJa [https_lvwzhen.gitbooks.io_git-tutorial_content]: https://lvwzhen.gitbooks.io/git-tutorial/content/ [https_git-for-windows.github.io]: https://git-for-windows.github.io/ [Image 1]: [https_github.com_clayJa_warehouse.git]: https://github.com/clayJa/warehouse.git
相关 Git教程 在线推荐教程: [https://lvwzhen.gitbooks.io/git-tutorial/content/][https_lvwzhen.gitbooks.io_gi 冷不防/ 2022年09月28日 13:04/ 0 赞/ 165 阅读
相关 git教程 > 本篇教程使用linux 系统讲解,你也可以在windows下安装git,所有git命令都适用 linux下如何安装git > 如果你碰巧用Debian或Ubuntu 比眉伴天荒/ 2022年06月18日 05:40/ 0 赞/ 237 阅读
相关 《Pro Git》Git 教程 [https://git-scm.com/book/zh/v2][https_git-scm.com_book_zh_v2] [https_git-scm.com_book 谁践踏了优雅/ 2022年06月11日 00:17/ 0 赞/ 181 阅读
相关 git教程 如何使用GitHub?& 如何使用git命令以及学习git? 很多刚接触git的小伙伴不知道如何学习和使用git以及GitHub,在注册了GitHub账号后 爱被打了一巴掌/ 2022年06月07日 08:38/ 0 赞/ 207 阅读
相关 Git教程 git是分布式版本控制系统,跟踪管理的是修改,而非文件 基本操作 1.安装git: `sudo apt-get install git` 安装后设置: `git c 系统管理员/ 2022年05月30日 09:43/ 0 赞/ 189 阅读
相关 git教程 简介: 分布式版本控制系统。客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本 曾经终败给现在/ 2022年01月07日 08:41/ 0 赞/ 251 阅读
相关 git 教程 转: [https://www.liaoxuefeng.com/wiki/896043488029600][https_www.liaoxuefeng.com_wiki_89 谁践踏了优雅/ 2021年11月04日 19:50/ 0 赞/ 281 阅读
相关 git教程 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器 刺骨的言语ヽ痛彻心扉/ 2021年09月23日 02:16/ 0 赞/ 309 阅读
相关 git教程 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器 小鱼儿/ 2021年09月23日 02:14/ 0 赞/ 344 阅读
相关 git教程 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器 小咪咪/ 2021年09月23日 02:12/ 0 赞/ 427 阅读
还没有评论,来说两句吧...