git入门手册(绝对简单易懂)

介绍:

1、git安装

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这几个命令安装就好了。

解析:“sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。”

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

2、配置

2.1用户配置

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

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

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

2.2密钥配置

编写代码之前还需要生成并配置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文件,里面的是公钥,另一个文件不能随便透露,里面是私钥。

3、创建版本库

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

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

步骤:

(windows)首先选择好你要将代码放在哪里。


切换分支:

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

常用命令:

git branch #查看当前分支
git checkout dev #切换分支
git checkout -b test #创建并切换子分支,在dev分支下创建自己的分支
git branch dev #创建分支
git branch -d dev #删除分支
git merge 分支名 #合并某分支到当前分支 
git checkout -b test origin/test #创建远程origin的dev分支到本地
注意:Linux服务器下,在本地建好分支后,将要本地分支推送到远程服务上,使得远程也存在该分支:git pull origin 本地分支:远程分支

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

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

4、编写代码

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

克隆代码
当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。

git clone 代码库地址

常用命令:
git remote #查看远程库信息
git remote -v #显示更详细信息

编写代码

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

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

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

编写完成提交代码:
按以下推送步骤来就OK:
注意顺序:修改1->git add->修改2->git add->git commit

git status #查看版本库中修改的文件,需要提交的文件,确定要添加到暂存区的文件。
git add 修改的文件名 #将要提交的文件首先提交到暂存区
git status #查看版本库的状态
git commit -m "提交的说明" #编写提交的说明便于以后查找
git log #查看提交记录
git push origin 本地分支:远程分支 #Linux服务器下将本地分支推送到远程。(我们需要code review,所以是  git push origin 本地分支:refs/for/远程分支)

合并代码
注意:merge的时候,可能会出错冲突,那也咩关系,解决就是了!

解决办法:
  (1)git status查看冲突的文件(
注意:冲突标记<<<<<<< 与=======之间的内容是我的修改, =======与>>>>>>>之间的内容是别人的修改。)
  (2)**在本地合并,解决冲突,再推送:git pull --->本地解决冲突--->git commit--->git push origin 分支名**

同样切换分支的时候也需要先git status一下,然后根据它的提示来做就ok了。

常用命令:

git diff #查看这个做过的修改
git clean -f #删除untracked文件,或者直接用rm -f 文件名
git log #查看历史记录,显示从最近到最远的提交日志

可以添加 --pretty=oneline 参数 友情提示的是,你看到的一大串类似1094adb...的是commit id(版本号)

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

git push 之后想撤销:git reset --hard commit_id 或 git reset --hard HEAD^

1、二者区别:

git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可;
git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉;

 

回退到上一个版本: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 文件名(只是单纯删除文件)
上传文件:rz #回车键,选择要上传的文件(Linux命令,不是git命令)
下载文件:sz 文件名(Linux命令,不是git命令)
移动文件:mv 文件名 path
复制文件:cp 文件名 新的文件名
重命名文件:mv 文件名 新的文件名
假设当前写的东西进行到一半,有紧急任务,但当前的又不想提交:
git stash #将当前的工作储藏起来,以后恢复继续工作
git stash list #查看原先的工作
git stash apply #恢复储存的工作
git stash drop #删除原先储存的工作或者git stash pop #恢复的同时也将stash内容删除
git stash list #查看并没有了
将工作区的文件已经删除了:用git status查看哪些被删除了,然后有两种选择:
(1)删除版本库的文件: git rm 文件名,然后git add ,git commit 
(2)删除工作区的文件:git checkout --文件名(用版本库中的文件代替工作区的文件,一键还原)
git log --graph #查看分支合并图:

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

小知识:
(1)git status显示一些Untracked files ...文件,在根目录下创建.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

忽略文件的原则是:

忽略操作系统自动生成的文件,比如缩略图等;
忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

可能是.gitignore写得有问题,可以用git check-ignore命令检查。

(2)简写,配置别名

git config --global alias.st status #st代表status
其余:
co表示checkout,ci表示commit,br表示branch

每次在操作完git commit命令后,必须拉取一下分支代码,保持本地正在开发功能逻辑的代码分支代码是最新的,避免后续在提交时冲突过多或覆盖掉其他人的代码的问题出现。

参考书:

git社区参考书:Git

git参考:图解Git

git:Pro Git 中文版(第二版)

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值