git用法

1.git命令

#######################################################################################################################################
###############################################################git用法#################################################################
$  git config [--global] user.name 【用户名】   #配置参数
$  git config [--global] user.email 【邮箱】
$  git init    #初始化版本库
$  git add     #从工作区添加文件到暂存区
$  git commit -m '提交注释'    #从暂存区添加文件提交到该分支

$  git status                  #查看仓库当前状态
$  git diff 【文件名】          #查看工作区文件和当前仓库中对应文件的不同之处
$  git log [--pretty=oneline]                  #查看提交日志
$  git reset --hard [先前的'git commit'产生的commit id号码]    #回退到指定的版本号(根据commit的id)
$  git reset --hard HEAD~数字   #回退到前几版本号
$  git reflog                  #记录每次git commit提交的commit id
$  git checkout -- 【文件名】   #撤销修改,撤销到最近一次的git commit 或者git add,针对在工作区或者暂存区的文件。【一键还原】
$  git reset HEAD 【文件名】    #针对指定的文件从暂存区回退到工作区

$  git rm 【文件名】            #从版本库删除文件
$  git commit -m '删除文件的注释' #提交删除的操作


$  ssh-keygen -t rsa -C  '邮箱地址'    #创建ssh密钥。id_rsa私钥,id_rsa.pub公钥
$  git remote  add origin  git@github.com:用户名/learngit.git #关联github的自己远程仓库。origin:远程仓库远端。
$  git --help  #查看git命令帮助
$  git push -u origin master   #origin:远端;master:本地仓库的master分支。首次从本地仓库推送到远端。期间验证密钥指纹信息输入yes确认加入列表。
$  git push origin master      #非首次的推送到远端。
$  git clone   git@github.com:用户名/learngit.git #克隆远程仓库。git  clone  ssh远程地址

$  git checkout -b 【分支名称】  #创建新分支并切换到该分支
$  git checkout -b dev             #dev分支
$  git branch dev  #创建分支dev
$  git checkout dev #切换到分支dev
$  git branch      #列出所有分支,当前分支前面标有*号。
$  git checkout master #切换到master分支
$  git branch -d dev   #删除dev分支
$  git merge dev       #假设当前在master分支下,那就是合并dev分支到当前master分支下
$  git log --graph --pretty=oneline --abbrev-commit    #查看分支合并的情况(分支合并图)
$  git merge --no-ff -m '禁用fast-forward模式(快速合并)的注释'    dev #禁用快速合并模式,把dev分支合并到当前分支,比如master分支

$  git stash   #把当前分支的工作现场“储藏”起来,比如针对dev分支
$  git stash list  #列举查看工作现场

$  git stash apply stash@{0}   #恢复工作现场
$  git stash drop              #删除储藏的工作现场

$  git stash pop               #恢复工作现场同时删除储藏的stash内容进行删除
$  git branch -D test          #强制删除没被合并的test分支
$  git remote                  #查看远程库信息
$  git remote -v               #查看远程库详细信息
$  git push origin master  #主分支。从本地仓库的分支master-->推送到远程仓库的master分支
$  git push origin dev     #开发分支。本地分支dev--->推送到远端dev分支。
$  git push origin bug     #bug修复分支
$  git push origin featue
$  git clone git@github.com:用户名/learngit.git   #克隆仓库
$  git checkout -b dev origin/dev  #创建本地dev分支(跟远端dev分支对应)。在本地创建和远程分支对应的分支

$  git add .
$  git commit -m 'add a file'
$  git push origin dev #推送

$  git pull
$  git branch --set-upstream dev origin/dev    #创建本地仓库的分支和远端仓库的分支的链接关系。建立本地分支和远程分支的关联
$  git pull    #从远端仓库获取到本地仓库

$  git tag 【标签名】   #针对当前分支,打标签。标签即特定的commit_id提交版本号,方便记忆。
$  git tag             #列举出打过了哪些标签
$  git log --pretty=oneline --abbrev-commit    #查看历史提交日志
$  git tag v0.9    6224937 #针对提交commit_id为6224937
$  git show 【标签名】      #查看标签信息
$  git tag -a 【标签名】 -m '打标签的说明文字'      【commit_id提交的值】 #创建带有说明的标签
$  git push origin 【标签名】   #推送一个标签到远端
$  git push origin --tags      #推送全部没被推送过的标签到远端

$  git tag -d 【标签名】        #删除本地某个标签(1)
$  git push origin :refs/tags/【标签名】    #可以删除一个远程标签。(2)
#经过上两个的(1)和(2)结合起来->可以对远端删除某个标签

$  git remote rm origin    #删除远端origin

$  git config color.ui true    #让git显示颜色


#忽略某些文件时,需要编写.gitignore
#.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!
#git忽略特殊文件,参看:
#教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013758404317281e54b6f5375640abbb11e67be4cd49e0000
#在线浏览配置文件(.gitignore):https://github.com/github/gitignore

$  git config alias.【别名】  命令名  #比如git config alias.st  status然后就可以使用git st命令查看当前分支的状态
#配置别名
$  git config alias.ci commit  #配置提交的别名
$  git config --global alias.ci commit     #配置全局参数:  --global
$  git config alias.co checkout
$  git config alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"   #用于查看日志。git lg
#######################################################################################################################################


#######################################################################################################################################
###############################################关联多个远程仓库:GitHub和码云##########################################################
$  git remote -v
$  git remote  #查看远端仓库信息
$  git remote add github git@github.com:用户名/learngit.git   #关联github
$  git remote add gitee  git@gitee.com:用户名/learngit.git        #关联码云
$  git config user.name 'GitHub用户名'                            #Github
$  git config user.email 'GitHub账户邮箱'
$  git push github master
$  git push github dev
$  git push github --tags
$  git config user.name 'gitee用户名'                         #gitee码云
$  git config user.email 'gitee账户邮箱'
$  git push gitee  master
$  git push gitee dev
$  git push gitee --tags
######################################################################################################################################

#######################################################################################################################################
###############################################搭建Git服务器##########################################################
#1.安装git
$  sudo apt-get update
$  sudo apt-get install git #安装git

#2.创建git用户,用来运行git服务
$  sudo adduser git            #添加一个git用户   #  /home/git

#3.创建证书登陆(添加公钥,id_rsa.pub文件里面的内容):
#收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

#4.初始化Git仓库:
#先选定一个目录作为Git仓库,假定是/home/git/srv/sample.git,在/home/git/srv目录下输入命令:
$  sudo git init --bare sample.git #初始化仓库
#Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
$  sudo chown -R git:git sample.git

#5.禁用shell登录:
#出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
#git:x:1001:1001:,,,:/home/git:/bin/bash
#修改为:
#git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
#这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

#6.克隆远程仓库(本地):
$  git clone git@192.168.128.128:/home/git/srv/sample.git  #192.168.128.128为自己服务器的ip,我用的是vmware创建的虚拟机
$  git config user.name '用户名'
$  git config user.email '邮箱'
$  touch test
$  git add .
$  git commit -m '添加test文件'
$  git push origin master  #推送到自己的服务器端的git远程仓库
#######################################################################################################################################

2.补充:

参考:廖雪峰的官方网站【git教程】猴子都能懂的GIT入门【git详细教程】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值