Git和Github快速入门

一、什么是Git?

        假设你在的公司要上线一个新功能,你们开发团队为实现这个新功能,写了大约5000行代码,上线没2天,就发现这个功能用户并不喜欢,你老板让你去掉这个功能,你怎么办?你说简单,直接把5000行代码去掉就行了,但是我的亲,说的简单,你的这个功能写了3周时间,但你还能记得你是新增加了哪5000行代码么?所以你急需要一个工具,能帮你记录每次对代码做了哪些修改,并且可以轻易的把代码回滚到历史上的某个状态。 这个神奇的工具就叫做版本控制。 

版本控制工具主要实现2个功能:
1. 版本管理
       在开发中,这是刚需,必须允许可以很容易对产品的版本进行任意回滚,版本控制工具实现这个功能的原理简单来讲,就是你每修改一次代码,它就帮你做一次快照。

2. 协作开发
       一个复杂点的软件,往往不是一个开发人员可以搞定的,拿微信来举例,现在假设3个人一起开发微信,A开发联系人功能,B开发发文字、图片、语音通讯功能,C开发视频通话功能, B和C的功能都是要基于通讯录的,你说简单,直接把A开发的代码copy过来,在它的基础上开发就好了,可以,但是你在他的代码基础上开发了2周后,这期间A没闲着,对通讯录代码作了更新,此时怎么办?你和他的代码不一致了,此时我们知道,你肯定要再把A的新代码拿过来替换掉你手上的旧通讯录功能代码, 所以此时需要一个工具,能确保一直存储最新的代码库,所有人的代码应该和最新的代码库保持一致。

二、Git的安装

在Linux上安装Git
首先,你可以试着输入git,看看系统有没有安装Git:

$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git

  

 三、创建版本库

        什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

$ mkdir git_trainning
$ cd git_trainning/
 
$ git init
Initialized empty Git repository in /Users/alex/git_trainning/.git/

        瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。

现在我们编写一个txt文件:

$ vim first_git_file.txt
 
first time using git, excited!
第一次用git哈哈

第一步,用命令git add告诉Git,把文件添加到仓库暂存区:

$ git add first_git_file.txt

第二步,用命令git commit告诉Git,把文件提交到仓库:

git commit -m "备注"

当然,如果你编辑完文件后发现你编辑错了,需要改回到原来的代码,此时如果你没有git add到暂存区的话,可以使用下面命令撤回:

git checkout -- 文件名

如果已经是git add后的话,也可以撤回,使用下面命令:

$git reset HEAD 文件名

三、回滚

        好了,现在我们启动时光穿梭机,准备把first_git_file.txt回退到上一个版本,也就是“update again”的那个版本,怎么做呢?
        首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交be02137bb2f54bbef0c2e99202281b3966251952(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
现在,我们要把当前版本回退到上一次修改的时候,就可以使用git reset命令:

$ git reset --hard HEAD^
HEAD is now at be02137 update again

  如果需要回滚到指定的版本,我们也可以通过查看日志,git log或者git reflog命令查看相应版本的“ID号”,然后使用下面命令撤回:

git reset --hard 343sd23 回滚到指定的版本

  

四、删除

rm file 本地删除
git add/rm file 提交/删除暂存区

  

五、远程仓库Github

由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:

第一步:创建SSH Key。

       在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "[email protected]"    //邮箱是注册github的邮箱

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

第二步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

第三步,验证是否成功,在git bash里输入下面的命令:

 

第四步,接下来就是把本地仓库传到github上去。

$ git remote add origin [email protected]:triaquae/example.git  #添加远程仓库
$ git push -u origin master  #关联后,第一次推送master分支的所有内容命令,此后,每次本地提交后,就可以使用命令git push origin master推送最新修改

六、分支

分支(dev):
	git checkout -b branch_name		创建分支
	git branch						查看当前所在分支
	git checkout branch_name		切换到分支
	git pull 						从远程更新代码到本地
	git push						把本地代码推到远程
	git merge branch_name			合并分支
	
	
Bug分支:
	git stash 把当前工作环境临时保存
	git stash list 查看临时保存的列表
	git stash apply 恢复之前保存的临时工作
	git stash drop 删除当前临时保存的环境备份
	git stash pop 恢复并删除临时保存的备份

  

猜你喜欢

转载自www.cnblogs.com/ray-h/p/10419966.html