Git基本操作

git push origin HEAD:refs/for/master%r=xxx@163.com

1.Git 与 SVN 区别

1)、Git 是分布式的,SVN 不是
2)、Git 把内容按元数据方式存储,而 SVN 是按文件
3)、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录
4)、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征
5)、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏

2.Git 配置

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量

1)/etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件
2)~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件
3)当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量

用户信息

git config --global user.name "username"
git config --global user.email xxx@163.com

查看配置信息

git config --list

3.Git 工作区、暂存区和版本库

1)工作区:你在电脑里能看到的目录
2)暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)
3)版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库

4.Git 创建仓库

git init
Git 使用 git init 命令来初始化一个 Git 仓库
git init repo

初始化后,会在 repo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中

git add *.c
git add README
git commit -m '初始化项目版本'

以上命令将目录下以 .c 结尾及 README 文件提交到仓库中

git clone
git clone <repo>
git clone <repo> <directory>

5.Git 基本操作

git init

用 git init 在目录中创建新的 Git 仓库

mkdir repo
cd repo/
git init
git clone

git clone 拷贝一个 Git 仓库到本地

git clone [url]
git add

git add 命令可将该文件添加到缓存

git add *.c
git status

git status 以查看在你上次提交之后是否有修改

git diff

git diff 来查看执行 git status 的结果的详细信息
git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。git diff 有两个主要的应用场景。

1)尚未缓存的改动:git diff
2)查看已缓存的改动: git diff --cached
3)查看已缓存的与未缓存的所有改动:git diff HEAD
4)显示摘要而非整个 diff:git diff --stat
git commit
1)使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中
2)Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址
git commit -m '第一次版本提交'

如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步

git commit -a
git reset HEAD
git reset HEAD 命令用于取消已缓存的内容
git rm

从工作目录中删除文件

git rm <file>
git rm -f <file>

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

git rm --cached <file>

如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可

git mv
git mv 命令用于移动或重命名一个文件、目录、软连接
git mv README  README.md

6.git分支管理

创建分支命令

git branch (branchname)

切换分支命令

git checkout (branchname)

合并分支命令

git merge

列出分支

git branch

删除分支

git branch -d (branchname)

分支合并

git merge

7.Git 查看提交历史

git log
git log --oneline
--oneline 选项来查看历史记录的简洁的版本
--graph 选项,查看历史中什么时候出现了分支、合并。以下为相同的命令,开启了拓扑图选项
--reverse 参数来逆向显示所有日志

8.Git 标签

如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签

git tag -a v1.0 

当你执行 git tag -a 命令时,Git 会打开你的编辑器,让你写一句标签注解,就像你给提交写注解一样
如果我们忘了给某个提交打标签,又将它发布了,我们可以给它追加标签

git tag -a v0.9 85fc7e7

看所有标签

git tag

指定标签信息命令

git tag -a <tagname> -m "标签"

9.Git 远程仓库

添加远程库

git remote add [shortname] [url]
git remote add origin git@github.com:tianqixin/repo-git-test.git
1)ssh-keygen -t rsa -C "xxxx@163.com"
2)打开 id_rsa.pub,复制里面的 key
3)回到 github 上,进入 Account => Settings(账户配置)
4)左边选择 SSH and GPG keys,然后点击 New SSH key 按钮,title 设置标题,可以随便填,粘贴在你电脑上生成的 key
5)验证是否成功 ssh -T git@github.com
6)在Repository name 填入 git-test(远程仓库名) ,其他保持默认设置,点击"Create repository"按钮,就成功地创建了一个新的Git仓库
7)git remote add origin git@github.com:xxxx/git-test.git
8)git push -u origin master

提取远程仓库
从远程仓库下载新分支与数据

git fetch

从远端仓库提取数据并尝试合并到当前分支

git merge
git fetch origin

推送到远程仓库

git push [alias] [branch]
git push origin master

删除远程仓库

git remote rm [别名]

git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名> ,例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名,
第一个master是本地分支名,第二个master是远程分支名。
refs/for 的意义在于我们提交代码到服务器之后是需要经过code review 之后才能进行merge的,而refs/heads 不需要

10.Git 服务器搭建

1)、安装Git

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
yum install git

2)创建一个git用户组和用户,用来运行git服务

groupadd git
useradd git -g git

3)创建证书登录
收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个

cd /home/git/
mkdir .ssh
chmod 755 .ssh
touch .ssh/authorized_keys
chmod 644 .ssh/authorized_keys

4)初始化Git仓库

cd /home
mkdir gitrepo
chown git:git gitrepo/
cd gitrepo
git init --bare repo.git

5)克隆仓库

git clone git@192.168.1.14:/home/gitrepo/repo.git

192.168.1.14 为 Git 所在服务器 ip ,你需要将其修改为你自己的 Git 服务 ip

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值