GIT常用操作


常用操作

  • 安装GIT
  • 简单配置
  • 创建仓库 维护旧仓库
  • 快速开始
  • 添加忽略
  • 从版本库中删除资源
  • 文件改名
  • git日志
  • 修改最近一次的描述信息
  • 文件管理
  • 添加别名
  • 分支branch && 分支合并
  • 解决冲突
  • 暂存区
  • TAG标签
  • 发成ZIP压缩包(代码发布)
  • 系统别名
  • 合并
  • github 使用SSH与GITHUB远程服务器进行连接
  • 本地版本库主动使用 remote与远程服务器关联
  • 本地分支与远程服务器分支同步
  • 多人合作开发
  • 搭建GIT服务器(centos7)
  • 使用 git-bash 生成公钥和私钥

安装git

# win 下载 git for windows 客户端 安装即可
# linux
yum install git -y
# 查看版本
git --version

简单配置

# --global 配置全局 去掉配置单个项目
git config --global user.email "xx@xx.com"
git config --global user.name "xxx"

# 回到用户目录 打开配置文件查看
cd
vim .gitconfig

创建仓库 维护旧仓库

创建仓库

# win 下 cmd; linux 类似
cd /d
mkdir -p github/test
cd github/test
git init

维护旧仓库

git clone https://xxxxxxx.com/xx.git

快速开始

# 远程获取
git pull

# 添加文件跟踪
git add .

# 提交
git commit -m '提交说明'

# 远程提交(默认同步到与本地同名的分支)
git push

# ex
touch a.txt b.txt
git status
git add a.txt b.txt
git status
git commit -m "描述"
git push

添加忽略

在项目目录创建一个 .gitignore的文件

touch .gitignore

vim .gitignore

添加内容

# 这是忽略配置文件
# 忽略所有 .txt 结尾的文件
*.txt
# readme.txt 文件除外
!readme.txt
# 忽略vendor 目录
/vendor

添加除了忽略的其它文件到跟踪

git add .

从版本库中删除资源

删除仓库中的 a.php 同时删除本地的 a.php

git rm a.php

只删除仓库中的 a.php 保留本地

git rm --cached a.php

文件改名

git mv a.php IndexController.php
git add .
git commit -m "rename file"

在window 下面如果只改文件名称的大小写 有可能会发生在版本中不识别变化。
可以 先改成 别的名字,再改成想要的大小写形式;也可以使用 git mv 命令,同linux命令。

git日志

查看日志

git log

# 查看详细信息
git log -p
# 查看最近一次变动 n -n
git log  -p -1
# 查看简短信息
git log --oneline -p
# 仅在提交信息后显示已修改的文件清单
git log --name-only
# 显示新增、修改、删除的文件清单
git log --name-status

修改最近一次的描述信息

# 修改最近一次的描述
git commit --amend

# 把新的提交归入到最近一次的提交
git add aa.txt
git commit --amend

文件管理

撤销对文件的跟踪

git reset HEAD a.php

添加别名

添加一个 跟踪命令的别名 a

git config --global alias.a add .

在 配置文件中 的[alias] 区域 配置 a = add . 两种方式等同

分支branch && 分支合并

一定是先有主干提交后才有分支的

# 查看分支 & 当前所在分支
git branch

# 创建bbs论坛分支
git branch bbs

# 切换到 bbs 论坛 分支
git checkout bbs

# 创建并 切换到 abs 分支
git checkout -b abs

# 合并分支
git checkout master
git merge bbs

# 删除分支
git branch -d bbs

# 强制删除分支(没有合并的化,需要强制删除)
git branch -D bbs

# 查看合并的分支
git branch --merged

# 查看没有合并的分支
git branch --no-merged

解决冲突

找到 冲突 文件,修改掉冲突的地方;提交即可。

暂存区

当前分支 没有最终提交;但需要临时切换到别的分支,即可以暂存当前分支文件

# 暂存
git stash

# 暂存列表
git stash list

# 恢复暂存区
git stash apply stash@{0}

# 删除暂存区
git stash drop stash@{0}

# eg
git checkout bbs
touch aa.php
git add .
git stash

touch bb.php
git add .
git stash

git stash list
.....
git stash apply stash@{0}
git stash drop stash@{0}

TAG标签

只给稳定的版本打标签 某个阶段的稳定版本

显示标签

git tag

添加标签

git tag v1.1

发成ZIP压缩包(代码发布)

git archive master --prefix='bbs' --forma=zip > bbs.zip

系统别名

区别于别名 别名要加 git; 系统别名使用别名即可。

cd
vim .bash_profile

# 添加
alias gs="git status"
alias gc="git commit -m "

合并

当分支未合并时,主干又提交了新的版本。
为了解决这个问题,把分支的节点挪到主干的最新节点即可。

# 进入分支
git checkout bbs
# 替换节点
git rebase master
git checkout master
# 合并分支
git merge bbs

github 使用SSH与GITHUB远程服务器进行连接

# 注册github账号
# 创建项目
# 生成秘钥
ssh -keygen -t rsa
cd
# 公钥 复制内容到 github 添加 ssh key
cat .ssh/id_rsa.pub

# 克隆项目
git clone xxxxxx.git

# 推送到远程
git push

本地版本库主动使用 remote与远程服务器关联

本地先有了项目,主动与服务器关联

# git@github.com:xxx/xx.git 项目git地址
git remote add origin git@github.com:xxx/xx.git

# 查看远程服务器
git remote -v

# 推送到远程服务器
git push -u origin master

本地分支与远程服务器分支同步

查看所有分支

git branch -a

同步分支到远程服务器 bbs 分支名

git push --set-upstream origin bbs

多人合作开发

# 克隆项目
git clone git@githubxxxx/xxx.git test

# 查看分支
git branch -a

# 获取远程 test分支 到本地 test分支
git pull origin test:test

# 切换到 test分支
git checkout test

# 模拟操作
touch a.c
git add .
git commit -m 'add a.c'

# 推送到远程
git push

# 如果没有与远程建立关联,则会推送失败
git push --set-upstream origin test

# 删除远程 test分支
git push origin --delete test

搭建GIT服务器(centos7)

安装git -- 先配置YUM源

yum install -y git
# 查看版本
git --version

# 创建git用户用于git服务 不能登录
useradd -s /usr/bin/git-shell git

# 收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
# git用户下 创建.ssh目录;有可能没有
mkdir /home/git/.ssh

# 创建authorized_keys文件
# 把用户的id_rsa.pub 内容放入keys文件中,一行一个
touch /home/git/.ssh/authorized_keys

# 创建一个git服务目录 如/repos
mkdir /repos

# 初始化一个仓库 test.git 名称自定义
git init --bare test.git

# 修改目录所有者--因为GIT用户不用于登录只用于服务GIT,需要单独把目录所有者给GIT用户和组
chown -R git:git test.git

# 查看本机IP
ifconfig

# 远程克隆即可
git clone git@ip:/repos/test.git

使用 git-bash 生成公钥和私钥

  • 打开git bash
  • 执行生成公钥和私钥的命令:ssh-keygen -t rsa 根据提示操作即可,一般直接回车即可
  • 接着会生成一个私钥 id_rsa和一个公钥id_rsa.pub。(可执行start ~ 命令,生成的公私钥在 .ssh的文件夹里面)
  • 查看公钥的命令:cat ~/.ssh/id_rsa.pub

声明:Rock 版权所有,内容均为原创,欢迎转载。

转载:转载请注明原文链接 - GIT常用操作


我是一个程序员,致力于网页开发,我还很年轻,什么也不懂。