简介
Git是分布式版本控制系统。
Git解决了两个问题:
- 版本历史溯源问题
- 多人操作同一个文件问题
安装
sudo apt-get install git
设置
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
创建仓库
mkdir learngit #创建一个目录
cd learngit
git init #把这个目录变成Git可以管理的仓库
把文件添加到仓库
# 在learngit目录下创建readme.txt 文件,里面随意写几行文字,用于接下来的测试,保存并退出。
git add readme.txt #把文件添加到仓库
git commit -m "wrote a readme file" #添加这次操作的一些必要的文字说明
git status #查看仓库当前的状态
#我们修改文件,之后保存并退出。
git status #再次查看仓库状态,提示有文件内容被修改过,却没有被提交到仓苦以进行跟踪。
git diff #查看文件变更的具体内容
git add readme.txt #提交修改到仓库
git commit -m "add distributed word in first line" #添加本次修改的说明
git status #再次查看状态
git log #查看提交历史,命令`git log --pretty=oneline`紧凑显示相关信息
git reset --hard HEAD^ # HEAD^表示回退到上一个版本,HEAD^^表示回退到上上一个版本,以此类推。或者直接表示为HEAD~2,数字表示往回倒几个版本。
git log
git reflog #查看命令历史
git reset --hard 725e907 #回到最新的那个版本,725e907表示commit id 的前几个数字,用`git reflog`命令可以查看,想回退哪个版本就输入那个版本的commit id
git log #再次查看信息
git rm readme.txt #删除文件
git commit -m "remove readme.txt" #提交操作信息。
远程仓库(使用github)
- 首先创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,就可以跳过下面这条命令,如果没有就执行下面命令:
ssh-keygen -t rsa -C "youremail@example.com"
- 登陆GitHub,打开“settings” -> “SSH and GPG Keys”:
然后填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容即可。最后,点击“add SSH key”就ok了。 - 现在在github上创建一个仓库,点击“new repository”,填写“repository name“之后,点击“create repository“就完成了。
- 在上一步执行完之后,页面后面会有提示,我们按照提示的命令执行就可以了,现在我们按照提示执行命令:
git remote add origin https://github.com/leno1001/learngit.git #远程库的名字就是origin,leno1001是我的github用户名,learngit是我刚才填写的repository name,你们换成自己的就可以了。
git remote -v #查看远程库的详细信息
git push -u origin master #把本地库(master)的所有内容推送到远程库(origin)上,第一次使用加-u
#我们可以看到我们本地的文件已经push到github上了。
#以后本地再有更新的话add之后运行下面两个命令就可以把更新的内容同步到远程仓库
git pull #拉 从远端下载版本到本地
git push #git push -f 强制进行更新
- 我们也可以从远程仓库(github)上克隆一个项目到本地库,使用如下命令:
git clone https://github.com/leno1001/gitskills.git
#执行之后可以看到当前目录下多了一个gitshills文件夹
分支管理
使用分支解决的问题:分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。
现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到。其他人还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。
git branch #查看分支
git branch <分支名> 创建自己的分支修改文件
git checkout <分支名> 切换分支
#或者一步到位
git checkout -b dev #创建dev分支,然后切换到dev分支,我们可以在dev分支上干活了。
git branch
#之后我们试着修改文件内容并使用命`git add filename`和`git commit -m some_information`进行提交
git merge dev #把dev分支的工作成果合并到master分支上,别人就可以看到新的内容了。
git branch -d dev #删除dev分支
git branch
更加详细的内容请看寥雪峰老师的博客,地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
END
网友评论