博客列表 >Git使用

Git使用

李子的博客
李子的博客原创
2019年03月20日 10:38:13724浏览

(针对本地)

  1. Git的官方网站:http://git-scm.com



2.下载git for windows:https://git-for-windows.github.io/


3.设置用户名和邮箱

git config --global user.name "username"

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


4.创建版本库

mkdir learngit

cd learngit

pwd

git init


5.从工作区提交到暂存区,从暂存区提交当前版本分支区

(简单理解为三部分,工作区--暂存区--版本分支区[分支互不干扰])

git add <file>

git commit -m <备注>


6.查看版本库当前状态,文件修改内容

git status

git diff <file>


7.查看版本分支

git log [--pretty=oneline]


8.版本回退

(HEAD当前版本,HEAD^上个版本,HEAD^^上上个版本,HEAD~100往上第100个版本)

git reset --hard [HEAD|<commit id>]


9.查看命令历史

git reflog


10.撤销修改

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考6.版本回退,不过前提是没有推送到远程库。


11.删除文件,commit的文件可恢复

git rm <file>


12.分支操作

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge [--no-ff] <name> 

(合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并)

删除分支:git branch -d <name>

分支合并图:git log --graph


13.Bug分支

创建分支进行bug修复,完成合并,删除该分支

保存工作区现场到stash内容:git stash

恢复的同时把stash内容也删了:git stash pop

恢复的同时stash内容并不删除:git stash apply

删除stash内容:git stash drop


14.标签管理

创建标签:git tag <name> [commit id|默认HEAD]

git tag -a v0.1 -m "version 0.1 released" 3628164

查看所有标签:git tag

可以推送一个本地标签:git push origin <tagname>

可以推送全部未推送过的本地标签:git push origin --tags

可以删除一个本地标签:git tag -d <tagname>

可以删除一个远程标签:git push origin :refs/tags/<tagname>


15.忽略特殊文件

.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理

所有配置文件可以直接在线浏览:https://github.com/github/gitignore

(针对局域网)

16.连接GitHub

创建SSH Key:ssh-keygen -t rsa -C "youremail@example.com"(默认回车无需密码,在用户主目录生成.ssh文件夹)

登陆GitHub,打开“Account settings”,添加new SSH key(/.ssh/id_rsa.pub内容添加到key)

从远程库克隆,如:git clone https://github.com/miguelgrinberg/flasky.git


17.克隆局域网仓库(windows)

共享局域网仓库,直接访问网络路径(如://DESKTOP-EIR7POG/learngit或者//192.168.1.165/learngit,本机IP为192.168.1.165)

git clone //192.168.1.165/learngit

git默认拒绝了push操作,需要进行设置,修改.git/config添加如下代码:

[receive]

denyCurrentBranch = ignore


18.搭建局域网仓库(linux)

①下载git

sudo apt-get install git

②root创建git用户

sudo adduser git

③选一目录创建git空仓库(远程仓库)

sudo git init --bare sample.git

④把该仓库拥有者设置成git用户

sudo chown -R git:git sample.git

⑤设置git用户禁用shell登录

sudo nano /etc/passwd

git:x:1001:1001:,,,:/home/git:/bin/bash

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell


19.本地对远程仓库常用操作

①克隆远程仓库

git clone git@server:/srv/sample.git

②上传本地master分支到远程b1分支(远程分支可有可无)

git push origin master:b1

③本地更新远程仓库数据(两种,多人合作推荐第二种)

第一种:远程master合并到本地master

git pull origin master 

第二种:远程所有分支(branch)下载到本地(git branch -a可显示所有分支),通过分析异同,再合并

git fetch origin

git diff [指定分支] 

git merge [指定分支]

--------------------- 

作者:HQ麟 

来源:CSDN 

原文:https://blog.csdn.net/u014686875/article/details/54952302 

版权声明:本文为博主原创文章,转载请附上博文链接!


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议