1、git安装

几乎所有的平台都可以安装,安装教程。
在Linux下安装git
输入git,查看系统是否存在git,若没有安装,它会提示你如何做。

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

如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:./config,make,sudo make install这几个命令安装就好了。

在windows下安装git
直接官网下载安装

2、配置

git config --global user.name "Your Name"  git config --global user.email "email@example.com"

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

题外话:我第一次安装的时候忘记user.name和user.email了,它也是命令的一部分。

3、创建版本库

版本库:
官方说法:这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

其实简单说就是管理代码的仓库,你所有的操作都在里面。

步骤:
(windows)首先选择好你要将代码放在哪里。
切换分支

一般公司中的许多人在开发同一个项目,需要在master分支下切一个dev子分支,每个人也可以切换自己的一个子分支,在开发完成后,在merge到主分支。

git branch #查看当前分支
git checkout -b dev #创建并切换子分支,dev可换成自己的分支名字
git checkout dev #切换分支
git branch dev #创建分支
git branch -d dev #删除分支
git merge 分支名 #合并某分支到当前分支
注意:Linux服务器下,在本地建好分支后,将要本地分支推送到远程服务上,使得远程也存在该分支:git pull origin 本地分支:远程分支
git remote add origin git@server-name:path/repo-name.git #将本地分支和远程相关联

mkdir+目录名 #新建版本库
touch+文件名 #新建文件(新建文件有两种方式:
1、touch+文件名,直接新建一个文件
2、vi+文件名,新建一个文件并进入编辑状态(如果文件已存在,则直接进入编辑状态))
cd+目录名 #进入目录
pwd #显示当前所在目录的路径
git init #初始化仓库(把这个目录变成Git可以管理的仓库)

提示:
(1)如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。
(2)git init后目录里面会多一个.git 文件,没事千万不要手动修改里面的东西!!!!
(3)千万不要使用Windows自带的记事本编辑任何文本文件。

4、编写代码

编写代码的方式有两种,一是你可以自己新建文件,二是克隆公司其他前辈的代码,在此基础上进行修改。

编写代码之前还需要生成并配置SSH-KEY(这个东东是将本地的工作区中的分支和远程的分支进行关联的)

#生成密钥,一路回车、用默认选项
ssh-keygen -t rsa
#在本地(我的电脑或者计算机)中找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件(id_rsa是私钥,id_rsa.pub是公钥),将id_rsa.pub文件中的内容复制到粘贴板
cat ~/.ssh/id_rsa.pub | clip # Windows
cat ~/.ssh/id_rsa.pub | pbcopy # MacOS

注意:粘贴的一定是.pub文件,里面的是公钥,另一个文件不能随便透露,里面是私钥。

克隆代码

git clone 代码库地址

编写代码

如果使用的是Linux服务器的话,用vim打开该文件。

vim 文件名或者vi 文件名 #打开文件
:wq #保存退出

注意:强制退出可以在后面加一个“!”,若对文件无任何修改可以直接用“:q”进行突出

编写完成提交代码:
按以下步骤来就OK:

git status #查看版本库中修改的文件,需要提交的文件,确定要添加到暂存区的文件。
git add 修改的文件名 #将要提交的文件首先提交到暂存区
git status #查看版本库的状态
git commit -m "提交的说明" #编写提交的说明便于以后查找
git log #查看提交记录
git push -u origin 分支名(我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。)
git push origin 本地分支:远程分支 #Linux服务器下将本地分支推送到远程。(我们需要code review,所以是 git push origin 本地分支:refs/for/远程分支)

注意:推送的时候,可能会出错,那也咩关系,解决就是了!

  先用git status 查看要提交的文件,用git add将所有的要提交的文件进行暂存,然后一次git commit就可以。注意顺序:修改1->git add->修改2->git add->git commit

常用命令:
git diff #查看这个做过的修改
git log #查看历史记录,显示从最近到最远的提交日志

     可以添加 --pretty=oneline 参数

友情提示的是,你看到的一大串类似1094adb...的是commit id(版本号)

注意:HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

回退到上一个版本:git reset --hard HEAD^(撤销到原先的最新版本,若没有关界面的话,可以往界面的上查找版本号,将HEAD^换成版本号,若已经关闭,可以用 git reflog命令)
撤销暂存区:git reset head <filename>
撤销工作区:git checkout -- filename
查看内容:cat 文件名
查看工作区和版本库里面最新版本的区别:git diff HEAD -- 文件名
撤销工作区的所有修改:git checkout --文件名(分为两种,一种是回到和版本库中的一样,一种是回到上次暂存到暂存区的版本。命令中的“--”很重要)
撤销已经提交到暂存区的版本,并重新放回工作区:git reset HEAD 文件名
创建文件:touch 文件名
删除文件:rm 文件名
删除指定名词目录:rmdir name
上传文件:rz #回车键,选择要上传的文件(Linux命令,不是git命令)
下载文件:sz 文件名(Linux命令,不是git命令)
移动文件:mv 文件名 path
复制文件:cp 文件名 新的文件名
重命名文件:mv 文件名 新的文件名
将工作区的文件已经删除了:用git status查看哪些被删除了,然后有两种选择:
(1)删除版本库的文件: git rm 文件名,然后git add ,git commit
(2)删除工作区的文件:git checkout --文件名(用版本库中的文件代替工作区的文件,一键还原)

名词解释:
工作区:在电脑里能看到的目录
版本库:工作区有一个隐藏目录.git,Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。