- 在Linux上安装Git 首先,你可以试着输入git,看看系统有没有安装Git
- 如果你碰巧用Debian或Ubuntu Linux,通过一条sudo apt-get install git就可以直接完成Git的安装,非常简单
- 如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:./config,make,sudo makeinstall这几个命令安装就好了。
- 一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/。
- 第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。
安装完成后,在开始菜单里找到 “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 add ,注意,可反复多次使用,添加多个文件;
第二步,使用命令git commit,完成。
然后重新执行:
Git允许我们在版本的历史之间穿梭,使用命令
$git reset --hard commit_id。(commit_id课不必写全)
穿梭前,用
$git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用
$git reflog查看命令历史,以便确定要回到未来的哪个版本。
git删除修改
- 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令$git checkout -- file。
- 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令$git reset HEAD file,就回到了场景1,第二步按场景1操作。
$ 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”按钮,创建一个新的仓库:
在Repository name填入 仓库名,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:
目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
现在,我们根据GitHub的提示,在本地的仓库下运行命令:
$ git remote add origin https://github.com/clayJa/warehouse.git从现在起,只要本地作了提交,就可以通过命令:
$ 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中打标签非常简单,首先,切换到需要打标签的分支上:
$ 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