1.Git简介:
Git是目前世界上最先进的分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。
版本控制系统两大功能:
1:可以回溯历史,很容易回到之前的某个版本
2:多人合作时,很容易将代码合并到一起
分布式版本控制系统优点:项目组每个人电脑上都有版本信息的记录
普通版本控制系统:版本记录只存在于服务器上,每个人本地只有代码,而不能记录版本
安装:
sudo apt-get install git
安装成功后使用如下命令:
git
会出现git的使用命令介绍
2.远程仓库的创建
1.事先注册好github账号,登陆GitHub
2.在右上角找到“new repository”按钮,创建一个新的仓库
3.仓库名可以任意取,并且可以在Description框里添加一些该仓库的描述信息
4.仓库有public和private(收费)两种模式,通常我们选择public存放一些开放源代码
5.可以对仓库进行一些初始化操作(可选):
Add a README file-------可以在里面添加对该仓库的详细描述信息
Add .gitignore------比如选择python,那么提交的时候会过滤掉pyc文件
Choose a license------比如选择GNU General Public License
3.远程仓库克隆到本地
将github上的项目,克隆到本地一份,并将本地仓库和github上的仓库进行关联起来。在本地有权限的目录下执行,该目录下会自动生成一个远程仓库名的目录,并且在该目录下会生成.git的一个隐藏文件,切忌修改任何内容
克隆到本地有HTTPS,SSH等方式:
HTTPS方式:
命令:git clone https://github.com/账号名/仓库名.git
这种克隆方式,每次从本地库提交代码到远程库的时候都需要输入账号名和密码
SSH方式:
命令:git clone git@github.com:账号名/项目名.git
这种方式首先我们需要创建项目的SSH Key:
- 执行命令:ssh-keygen -t rsa -C "邮箱"
- 执行命令后,在用户主目录里能找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人
- 接着登录github注册或登录账号,打开“settings”的“SSH Keys”页面,然后,点“New SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,点“Add Key”,你就应该看到已经添加的Key
- 测试是否能够连接:ssh -T git@github.com
这种克隆方式,之后每次从本地库提交代码到远程库,都不需要输入账号和密码
4.设置和查看用户名和邮箱
尽量将git客户端的用户名、邮箱和github账号的用户名、邮箱设置为完全一致
设置全局用户名和邮箱:
git config --global user.name \'用户名\'
git config --global user.email \'邮箱地址\'
查看全局用户名和邮箱:
git config --global user.name
git config --global user.email
注意:当前库的操作需要在当前库根目录下(即.git隐藏文件所在目录下)进行
设置当前库的用户名和邮箱:
git config user.name "用户名"
git config user.email "邮箱地址"
查看当前库的用户名和邮箱:
git config user.name
git config user.email
5.本地库与远程库交互
从远程库获取到本地
git pull origin 远程分支
将本地提交远程库
git push origin 本地分支:远程分支
个人经验:
每次写代码前,先从远程库获取(git pull origin 远程分支)1次,从而拿到最新代码。然后在将代码从本地库提交到远程仓库(git push origin 本地分支:远程分支)前再获取一次,这一步操作,首先将远程代码与本地代码进行比较,如果能合并,则直接合并,如果不能合并,则报冲突,以便我们提前解决冲突。如果有冲突,我们可以使用git status查看冲突,然后打开冲突文件,上面会有<<<<<<<<<<表示当前分支中的代码,然后=========表示远程分支中的代码,你自己抉择如何处理这些代码,处理好以后,接着git add和commit该文件,最后git push origin 本地分支:远程分支进行提交
6.常见git操作命令
git clone 将github上的项目克隆到本地
git add 文件/文件夹 . 将文件/文件夹添加到暂存区
git commit -m \'说明信息\' 将暂存区的记录添加到仓库区
git reset 版本号 回退历史版本到暂存区
git checkout -- 文件名 使用暂存区的内容恢复工作区的内容
git log 查看当前版本的历史版本
git log --pretty=oneline 简版显示历史版本
git reflog 查看历史命令及版本
git reset HEAD 文件名 丢弃暂存区中的内容
git reset 版本号 --hard 利用本地库的某版本来恢复工作区,不写版本号,默认为HEAD
git status 查看本地库的状态
git branch 分支名 创建分支
git checkout 分支名 切换分支
git checkout -b 分支名 创建并切换到新分支下
git branch -d 分支名 删除本地分支
git push origin --delete 分支名 删除远程分支
git push origin 本地分支:远程分支 本地提交到远程
git pull origin 远程分支 远程获取到本地
git tag -a 标签名 -m \'注释\' 给当前版本打标签
git tag 查看本地库的所有标签
git push origin 本地分支:远程分支 --tags 本地提交到远程,并且对该版本打上标签
git merge 分支名 合并分支到当前分支