Git教程



一、安装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,从

安装完成后,在开始菜单里找到 “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_rsaid_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 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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值