一.git概述
git作用
一种代码管理工具,一般分为git和snv。
- 防止代码丢失,可以做备份
- 代码版本的管理,可以进行多个版本之间的跳跃
- 可以方便的将代码在多人之间进行共享传输
- 多人开发时,有各种模式可以方便代码管理
git特点
- git 可以管理各种文件,特别是代码项目,多在 linux 和 unix 系统中使用 是分布式管理,不同于集中式,这是 git 和 svn 的核心区别
- git 可以很好的支持分支,方便多人协作工作 git 分布式代码分家安全,有全球唯一的 commit 版本号 git 是开源的系统
- 使用 git 可以脱网工作,且数据传输速度较快
二.git安装
windows 下的安装 :
在 Windows 上使用 Git,可以从 Git 官网直接下载安装程序,然后按默认选项安装即可。 msysgit.github.io 可以操作 github
Linux的安装方法:
1.sudo apt-get install git
如果下载不了就是你的更新源问题,你可以执行以下命令,更换更新源
sudo gedit /etc/apt/sources.list
复制进去
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
关闭,更新,这样你去执行命令就可以了
sudo apt-get update
2.去git官网下载linux的安装包
步骤1:拷贝安装包到虚拟机,并解压
步骤2:进入解压好的文件
./configure
make
make install
git 基本操作
(1)初始化仓库 git init |在某个目录下初始化仓库后会自动产生.git 目录,改目录下工作的所有文档可使用 git 进行管理
(2)查看文件、分支状态 git status
(3)将指定的文件提交到暂存区
git add <文件名> 将指定文件(任意文件类型的文件)提交到暂存区
git add * 将当前目录下所有的文件提交到暂存区 注意: 提交到暂存区的文件没有存放在本地仓库中 git rm --cache <文件名> 删除暂存区的指定文件
(4)将暂存区的文件提交到本地仓库
git commit -m <提交说明> 将文件同步到本地仓库并且设置提示说明 注意: 一般提示时需要附加一些同步信息,在-m 后添加 所有对工作区的修改,如果想同步到仓库,都需要执行当前命令(add --> commit)
(5)查看 commit 日志 git log 查看所有 cimmit 日志 git log --pretty=oneline 查看单行日志
(6)比本地文件和本地仓库中文件的区别 git diff <文件名>
恢复操作
(1)从本地仓库恢复本地文件
git checkout <文件名>
(2)丢弃工作区的修改
git checkout – <文件名> 丢弃本地指定文件中的已经修改的内容(–两边都有空格)
(3)本地仓库文件的移动和删除
git mv <源文件> <目的目录> 在本地仓库中将源文件移动目的目录中(本地也会移动)
git rm <文件名> 在本地仓库中删除指定的文件(本地也会删除) 注意: 移动和删除后,需要再次执行 git commit
(4)回到上一个版本
git reset --hard HEAD^ HEAD 后面的^数量决定了回到上几个版本
(5)回到指定的版本
git reset --hard <commit_id> 只需要 commit id 的前七位即可
(6)查看所有的历史版本
git reflog 最新的操作始终在最上边
标签管理(版本管理)
什么是标签 在当前工作的位置添加快照,保存工作状态,一般用于版本的迭代
(2)创建标签
git tag <标签名称> 创建标签
git tag <标签名称> -m <提示信息> 创建标签并设置提示信息
例如:git tag v1.0 默认是在最新的 commit id 处创建标签
git tag <标签名称> <commit id>
指定某一个 commit id 处创建标签
(3)查看标签
git tag
(4)删除标签
git tag -d <标签名称>
(5)查看指定标签的具体信息 git show <标签名称>
(6)恢复到指定标签的位置 git reset --hard <标签名称>
1.4.4 临时工作区管理
(1)创建保存临时工作区 git stash
(2)查看临时工作区 git stash list
(3)使用指定的工作区 git stash apply stash@{编号}
(4)使用最新的临时工作区并删除 git stash pop
(5)删除指定的临时工作区 git stash drop stash@{编号}
(6)删除所有的临时工作区 git stash clear
1.4.5 分支操作
3.1)查看当前分支
git branch 注意:前面有*的分支表示当前正在工作的分支
3.2)创建一个分支(默认在主分支创建)
git branch <分支名称>
3.3)切换工作分支 git checkout <分支名称>
3.4)创建并切换到新的分支
git checkout -b <分支名称> 主要用于在创建的分支基础上在创建分支
3.5)将指定的分支合并到当前分支
git merge <分支名称> 合并过程中如果没有冲突,直接合并后当前分支即为干净的状态,直接保存在本地仓库中 如果产生冲突,需要人为的选择,然后在进行 add 和 commit 的操作 在创建分支前,尽量保证当前分支是干净的,以减少冲突的发生
3.6)删除指定的分支 git branch -d < 分支名称>
1.4.6 远程仓库
(1)什么是远程仓库 另一台主机上的仓库,可以被其他主机访问到
(2) 创建远程仓库
2.1)创建文件夹 mkdir <目录名>
2.2)设置文件夹的属主 chown <用户名>:<组名> <目录名>
2.3)进入文件夹,将该文件夹设置为共享仓库 git init --bare <项目名称> (项目名称一般都是以.git 结尾)
2.4)设置本地仓库的属主 chown -R <用户名>:<组名> <项目名称>
(3)添加远程仓库 git remote add <仓库名称> <用户名>@<ip 地址>:<共享仓库的绝对路径> 注意: 默认使用 ssg 作为传输手段,仓库名称可以任意起名字 必须在本地的某个 git 仓库下执行,才能是本地仓库和远程仓库关联 (4)删除远程仓库 git remote rm <仓库名称>
(5)将本地仓库的文件推送到远程仓库 git push -u <远程仓库名> <要推送的分支> 注意:第一次推送需要加-u,以后不需要
(6)从远程仓库获取项目 git clone <用户名>@<ip 地址>:<共享仓库的绝对路径>
(7)从远程仓库拉取分支或者代码,可以更新代码 git pull <远程仓库名> <远程分支名> 拉取远程仓库指定的分支并且与当前分支合并 git pull <远程仓库名> <远程分支名>:<本地分支名> 不合并
(8)代码推送和更新 git push 将本地仓库的文件推送到远程仓库
git pull 从远程仓库中更新代码 git fetch 也用于更新,但是如果有新的分支不会合并
(9)本地旧覆盖版远程新
git push --force <远程仓库名> 当本地比远程旧,用本地覆盖远程
简易的命令行入门教程:
创建 git 仓库:
mkdir graduation-project
cd graduation-project
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/zzz-1511833951/graduation-project.git
git push -u origin master
已有仓库?
cd existing_git_repo
git remote add origin https://gitee.com/zzz-1511833951/graduation-project.git
git push -u origin master