Git简介
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件
对于任何一个文件,在 Git 内部只有四种状态:未跟踪untracked,已提交 (committed), 已修改(modified)和已暂存(staged)。
(1)已修改(modified) :表示修改了某个文件,但还没有提交给暂存区。
(2)已暂存(staged) :表示把已修 改的文件放在下次提交时要保存的清单中。
(3)已提交(committed) :表示该文件已经被安全地保存在仓库中了。
(4)未跟踪(untracked):对于没有加入Git控制的文件。
Git 工作区、暂存区和版本库
工作区:就是你在电脑里能看到的目录。
暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
一、安装Git
在linux下在线下载安装git
命令:sudo apt-get install git
Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull
workspace:工作区
staging area:暂存区/缓存区
local repository:版本库或本地仓库
remote repository:远程仓库
二、创建版本库
第一步:添加git用户:
sudo adduser git
sudo passwd git
第二步:修改密码文件:
sudo vim /etc/passwd
git:x:1005:1005::/home/git:/usr/bin/git-shell
第三步:安装sshd服务:
sudo apt-get install openssh-server
第四步:创建git仓库:
创建一个新文件夹,进入(打开),然后执行 git init 以创建新的 git 仓库
git init
第五步:克隆仓库
我们使用 git clone 从现有 Git 仓库中拷贝项目(类似 svn checkout)。
克隆仓库的命令格式为:
git clone <repo>
如果我们需要克隆到指定的目录,可以使用以下命令格式:
git clone <repo> <directory>
参数说明:
repo:Git 仓库。
directory:本地目录。
三、建立分支
避免直接在 main 或 master 分支上进行开发,通常会创建一个新的分支:
1.查看分支:
git branch 显示本地分支
git branch -r 显示远程分支
git branch -a 显示所有本地和远程分支
git branch -v 显示当前分支的信息和最近提交信息
2. 创建新分支:
git checkout -b <new-branchname> 创建一个新分支并切换到该分支
git branch <branchname> 创建一个新分支但不自动切换
3.切换分支:
git checkout <branchname> 切换到一个已经存在的本地分支
4.删除分支:
git branch -d <branchname> 删除已合并的本地分支
git branch -D <branchname> 强制删除本地分支,不论是否合并
5.重命名分支:
git branch -m <oldname> <newname> 重命名本地分支
6.比较分支:
git diff <branch1> <branch2>
7.合并分支:
git merge <branchname> 将branchname分支的更改合并到当前分支
四、文件添加和删除
在工作目录中进行代码编辑、添加新文件或删除不需要的文件。
将修改过的文件添加到暂存区,以便进行下一步的提交操作:
git add xxx.c
git add xxx.h
git add . 或者添加所有修改的文件
1.查看状态:
git status
2.文件提交
git commit 将暂存区内容添加到仓库中。
git commit –m “you comments” 将暂存区的更改提交到本地仓库,并添加提交信息
3.查看提交记录:
git log
4.查看差别:
git diff
5.撤销修改:
git checkout
6.删除文件:
git rm <filenname>
7.拉取最新更改(pull文件):
git pull --rebase
8.推送更改(push文件):
git push origin <branchname> 将本地的提交推送到远程仓库
五、版本回退
用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变:
git reset 指定版本
撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:
git reset –hard 指定版本