git使用介绍

项目中一直使用Git、现在对Git做一个总结

Git 分布式代码管理工具

流程图如下

工作原理

命令演示

1 初始化一个代码仓库

git init

2 如果使用Git 必须给Git配置用户名和邮箱

git config user.name "XXX"

git config user.email "XXX@qq.com"

给Git配置全局的用户名和邮箱

git config --global user.name "XXX"

git config  --global user.email "XXX@qq.com"

3 初始化项目

touch main.m   创建main.m

git add mian.m 将main.m   添加到缓存区

git add .  将不在暂缓区的文件全部添加到暂缓区

git commit -m"初始化项目"   将暂缓区的所有内容添加到本地仓库,情况暂缓区

git remote add origin https://github.com/******  将本地git文件链接到远程地址

git push origin master  推送当前代码到远程仓库

4 查看文件状态

git status  

红色 该文件被添加或者修改,但是没有天骄到git的暂缓区

绿色 该文件在暂缓区,但是没有提交到本地仓库

5 给命令其别名
git config alias.st "status"    给 status 起别名st

git config alias.ci "commit -m"   给commit -m起别名 ci

git config --global alias.st "status"  全局给 status 起别名st

6 删除文件

git rm main.m   将mian.m删除

7 产看版本信息

git log 版本号是由sha1算法生成的40位哈希值

git reflog 可以查看所有版本回退的操作

8 版本回退

git reset --head HEAD 回到当前版本

git reset --head HEAD^ 回到上个版本

git reset --head HEAD^^ 回到上上个版本

git reset --head HEAD~100 回到前100个版本

git reset --head 版本号(前五位)  回到某个固定版本号的版本

9 给log起别名

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

10. 强制推送

A开发 git reset --head HEAD^

A开发  git push -f

B开发 git reset --head HEAD^

需求和通知一下同伴 让同伴也将本地版本库回退到指定版本

二 共享版本库

自己搭建git服务器(Linux)

可以把代码托管到(GitHub、OSChina)

一个文件夹

一个U盘

在在一个文件夹下 共享版本库 命令

git init --bare

三、分支介绍

1、创建分支 并切换到该分支 git checkout -b  + 分支名字

2、切换分支 git checkout + 分支名字

3、删除分支

  • git branch : 查看当前在哪个分支   
  • git branck -r :查看本地版本库分支
  • git branch -d + 分支名字  删除本地分支
  • git branch -r -d origin/分支名字  删除本地仓库分支
  • git push origin --delete+分支名字 将删除的分支操作推送到远程仓库

    

 四 tag 介绍

git tag -a ’版本’ -m ‘描述’           

git push - -tags  把tag推送到远端

git tag '版本号'

git push origion   'tag号'

git tag -d 'tag号'   删除远端tag

git push origion : tag号 删除远端tag

一般使用 本地commit 后 本地打一个tag  git tag '版本号'

然后 git push origion   'tag号' 直接将本地修改推送到指定tag

删除子模块

# 逆初始化模块,其中{MOD_NAME}为模块目录,执行后可发现模块目录被清空git submodule deinit {MOD_NAME} # 删除.gitmodules中记录的模块信息(--cached选项清除.git/modules中的缓存)git rm --cached {MOD_NAME} # 提交更改到代码库,可观察到'.gitmodules'内容发生变更git commit -am "Remove a submodule."

# 逆初始化模块,其中{MOD_NAME}为模块目录,执行后可发现模块目录被清空
git submodule deinit {MOD_NAME} 
# 删除.gitmodules中记录的模块信息(--cached选项清除.git/modules中的缓存)
git rm --cached {MOD_NAME} 
# 提交更改到代码库,可观察到'.gitmodules'内容发生变更
git commit -am "Remove a submodule."# 逆初始化模块,其中{MOD_NAME}为模块目录,执行后可发现模块目录被清空git submodule deinit {MOD_NAME} # 删除.gitmodules中记录的模块信息(--cached选项清除.git/modules中的缓存)git rm --cached {MOD_NAME} # 提交更改到代码库,可观察到'.gitmodules'内容发生变更git commit -am "Remove a submodule."

 git remote -v  常看远端分支地址

git remote add origion_afn afn地址  添加一个远端地址

git fetch  origion_afn 把之前远端的地址拉倒自己的仓库

git branch -av 查看

git checkout  origion_afn/master -b origion_afn/master   本地创建并切换到这个分支

git tag 查看当前tag

git checkout 3.1.0  -b origin-afn/3.1.0

git merge origin-afn/3.1.0  将3.1.0合并到主分支

原文地址:https://www.cnblogs.com/ZhangShengjie/p/10093604.html