1. git的安装
输入命令安装git,并查看版本以确认安装成功。
sudo apt-get install git
git --version
2. git的使用
先解释一些概念,git分四层管理代码。
- 你目录中的文件是第一层
- 缓存区,每次add之后,当前目录中要追踪的文件会作为一个版本会存放在缓存区。注意不是所有的文件。一般一个文件生成之后,会标记为“未追踪”,但是否对其做版本管理还是要选择的。例如一些编译文件就没有必要追踪。对需要做版本管理的问件,用add添加,不需要的用clean删除。
- 本地仓库,每次commit之后,缓存区最新的版本就会存放在本地仓库。这里要提及一个HEAD的概念。HEAD是当前的版本指向,每次更新或者回退都会修改HEAD的指向,但对仓库中每一个版本并不会删除。所以即使回退到过去还是有机会回到现在的版本的。
- 远程仓库,每次push之后,会将本地仓库中HEAD所指向的版本存放到远程仓库
这里附上一些我常用的命令作为备忘录,详细的使用效果请参考我文末附上的博客链接。
命令 | 功能 |
---|---|
git init | 在本地的当前目录里初始化git仓库 |
git status | 查看当前仓库的状态 |
git add -A | 增加目录中所有的文件到缓存区 |
git add file | 增加相应文件到缓存区 |
git commit -m "信息" | 将缓存区中更改提交到本地仓库 |
git log | 查看当前版本之前的提交记录 |
git reflog | 查看HEAD的变更记录,包括回退 |
git branch -b branch_name | 建立一个新的分支 |
git diff | 查看当前文件与缓存区文件的差异 |
git checkout -- file | 取消更改,将缓存区的文件提取覆盖当前文件 |
git reset --hard 版本号 | 回退到相应版本号,同样也可以回退到未来的版本号 |
git clean -xf | 删除当前目录中所有未追踪的文件 |
git config --global core.quotepath false | 处理中文文件名 |
这些命令用于处理本地仓库的版本管理足够了,下面我介绍与远程仓库打交道。
3. ssh-keygen -t rsa -C "your_email@youremail.com" //双引号里面是你的常用邮箱
4.
git remote add origin git@github.com:<用户名>/<仓库名>.git
git pull origin master //因为github建立仓库时会有readme.md文件,先要拷贝一份
git push -u origin master //将本地仓库链接到master分支上,你当然可以链接到其他分支 git push//上传你的本地仓库
5.
git clone git@github.com:<用户名>/<仓库名>.git
举例
简易的命令行入门教程:
Git 全局设置:
git config --global user.name "cmy"
git config --global user.email "1012720289@qq.com"
创建 git 仓库:
mkdir shutdown
cd shutdown
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/1012720289/shutdown.git
git push -u origin master
已有仓库?
cd existing_git_repo
git remote add origin https://gitee.com/1012720289/shutdown.git
git push -u origin master
1. 查看远程分支
git branch -av
查看当前GIT仓库中的所有分支信息
2.git checkout -b NewBranchName : 基于目前工作分支的最新内容创建一个新的分支,分支名称为 NewBranchName (注意不可和已有分支重名,重名会报创建分支失败的错误),该命令还会直接将工作分支切换到这个新的分支上(指针 HEAD 会指向这个新分支),这时再通过 git branch -av 命令,就能显示目前该仓库下有两个分支了。通过 git log -n2 --oneline 也可以查看系统现在存在两个分支,并且 HEAD 指针指向我们新创建的分支 (图例的分支名称为 mileStone)
3. 切换分支
git checkout BranchName : 切换工作分支