花了两天时间粗略看了一下git,虽然并没有学得深入,但是想在此以一个初学者的角度对这两天git的学习进行总结。
之前一直在用svn,但是想到github这样的社区仅仅支持git,就想来感受一下git的魅力。
一、git相对于svn的优势
svn必须连网才能将代码提交到仓库,git每一台电脑都有一个本地仓库,无需连网,随时提交,需要的时候再将本地的修改推送到给远程仓库(实际上很多时候git也是有中央代码仓库的)或者你的团队成员。
git拥有强大的分支管理,svn虽然也有,但是其方便有效性是比不上git的,随时做标签,版本回退,多分支工作等等。
个人认为github支持git,学了git才能用github也是git相较于svn的一个优势。
二、git的入门
我总结了一些自认为初学者够用的git命令。
创建版本库:git init 在需要git代码仓库的目录下敲git init即可,创建成功后使用ls -a命令就可以看到多了一个.git文件夹。
将文件添加到仓库:git add <文件名> 将文件添加到代码仓库的暂存区,这时候并没有真正将代码提交到仓库,git add -A 一次性添加所有文件,注意空目录(新增的没有文件的目录)不会被添加到暂存区,如果需要添加空目录,则需要修改.gitignore文件,具体可以百度。
将暂存区文件提交到仓库:git commit -m <提交的说明> 用git commi命令才真正将暂存区的文件提交到仓库,注意不写说明,直接git commit 的话,会跳到一个窗口强制让你写说明,如果不写直接退出的话这次提交是失败的。
查看仓库状态:git status 可以掌握仓库当前状态,如某些被修改过但没有提交的文件
对比两次修改:git diff 用git diff可以对比两次文件做了什么修改(没有提交之前)
查看提交记录:git log
版本回退:git reset –hard <版本号或标签名> 具体版本号可以通过git log 查看,使用git reset –hard HEAD^可以回退到上一个版本,HEAD是一个指针,指向当前版本,HEAD^指上一个版本,HEAD^^代表上上个版本,以此类推
撤销某个文件的上一次提交:git checkout – <文件名> –必须加,不加是切换分支的命令。
撤销缓存区的修改:git reset HEAD <文件名>
删除文件:git rm <文件名> + git commit -m <说明> git rm 可以删除文件,删除之后需要配合git commit才能达到真正的删除
远程仓库 (1)创建ssh key:ssh-keygen -t rsa -C 在用户主目录查看有没有.ssh文件夹,没有则需要运行上面命令创建,在linux,root用户主目录是/root,其他用户以此类推。 (2)添加远程仓库:git remote add origin git@<代码仓库地址> 添加的前提是远程仓库记录有你的公钥,添加成功后,远程仓库的名字就是origin (3)推送到远程仓库:git push -u origin master 注意该命令是将本地仓库的master分支推送到远程仓库,如果需要推送其他分支则更改master为其他分支名 (4)从远程库克隆:git clone git@<仓库地址>
创建并切换分支: git checkout -b <分支名>
查看当前分支:git branch
切换分支:git checkout <分支名>
合并分支:git merge <分支名> 将指定分支与当前分支合并
删除分支:git branch -d <分支名>
在当前分支创建标签:git tag <标签名>
查看所有标签:git tag
查看标签信息:git show <标签名>
删除标签:git tag -d <标签名>
git 放弃本地修改 强制更新:
git fetch --all git reset --hard origin/master新闻热点
疑难解答