首页 > 代码库 > Git 基础应用
Git 基础应用
Git 学习
1.git工具基本含义
git最大的用处就是记录每个版本的变动、比较每个版本的不同,以及多人维护和开发同一个项目。支持版本回退。
2.git基本命令
a.创建版本库
$ mkdir learngit //创建目录
$ cd learngit //进入目录 $ pwd //查看当前目录 /Users/michael/learngit
$ git init //创建本地版本库
Initialized empty Git repository in /Users/michael/learngit/.git/
$ git add readme.txt //将readme.txt添加到工作区
$ git commit -m "test"//将readme.txt提交到本地仓库
$git status //查看目前工作区又没有没有被提交到仓库的文件
$git diff readme.txt //在提交到仓库之前查看那里做了改动(只能在提交到仓库之前)
$git log //查看历史记录
$git log --pretty=oneline //在一行上面显示历史记录
$git reset --hard HEAD^ //回退到上一个版本($git reset --hard HEAD^ 表示回退到上上一一个版本
)
$git reset --hard 版本代码 //回退到版本代码所代表的版本号(版本代码使用$git log 查看)
$git reflog //显示操作后的每一个命令,包括回退版本,一般用于回退后后悔时,查看没有回退之前的版本号,然后使用$git reset --hard 版本号 ,来回到没有回退之前的版本
$git diff HEAD -- readme.txt //查看工作区和版本库中readme.txt的不同
$git checkout -- readme.txt //撤销最近一次对readme.txt的修改,如果还没有$git add 就回到没有修改的上一个版本,如果已经$git add后才修改,就回到刚刚$git add的状态
$git reset HEAD readme.txt //将redme.txt从暂存区回退到工作区,然后使用$git checkout -- readme.txt 放弃工作区的修改
$git rm readme.txt //从版本库中删除readme.txt(必须先将本地的readme.txt删除,才能使用这个命令。使用 rm readme.txt命令将本地readme.txt删除以后可以使用$git checkout -- readme.txt 将文件找回。$git checkout -- readme.txt,其实是用版本库中的版本替换工作区中的版本)
$ssh-keygen -t rsa -C "example@example.com" //创建本机SSH key 用于github 网站的密匙绑定,即让github服务器知道这台主机和你的github账号是关联的,邮件地址填写自己的,(创建完成之后,在根目录会有.ssh文件夹,里面有两个文件,id_rsa和id_rsa.pub,其中id_rsa.pub里就是需要绑定在github网站上的公匙)
$git remote add origin git@github.com:mingming/learngit.git //关联远程github服务器上的仓库,记得把
git@github.com:mingming/learngit.git换成自己仓库的地址
$git push -u origin master //推送内容到远程仓库,并且将本地master分支和远程master分支关联起来(第一次推送使用)
$git push origin master //推送本地master分支到远程master分支,(修改后直接使用此命令推送)
$git clonegit@github.com:mingming/learngit.git //从远程仓库克隆,可以直接填充本地新仓库
$git checkout -b dev //创建dev分支并且切换到dev分支
$git branch dev // 创建dev分支
$git checkout dev //切换到dev分支
$git branch //列出所有分支
$git merge dev //将dev分支的工作合并到当前分支
$git branch -d dev //删除dev分支
$git log --graph --pretty=oneline --abbrev-commit //查看分支合并图
$git merge --no-ff -m "merge with no-ff" dev //以禁用Faste forword方式合并分支,合并完之后可以在历史中查看到曾经做过合并,而使用Faste forword方式则不会在历史记录中显示
$git stash //保存工作区现场,(当临时有任务需要修改时,需要暂停本分支上面工作任务)
$git stash list //查看本分支的工作现场列表
$git stash apply //恢复本分支工作现场
$git stash drop //删除stash内容
$git stash pop //恢复本分支stash内容并且删除stash
$ git stash apply stash@{0} //恢复指定的stash
$git branch -D dev //强制删除dev分支
$git remote -v //查看远程库详细信息
$git checkout -b dev origin/dev //创建本地dev分支,
$git branch --set-upstream dev origin/dev //指定本地dev和远程关联
$git tag V1.0 //给当前分支的版本号打上标签V1.用于标记自己的版本
$git tag //查看所有标签
$git tag V1.0 444444 //给commit id为444444的版本号打上标签
$git show V1.0 //查看V1.0版本的详细信息
$git tag -a V1.0 -m "shuo ming xin xi" //打上标签并且给出标签说明
$git tag -d V1.0 //删除V1.0标签
$git push origin V1.0 //推送V1.0标签
$git push origin tags //推送所有标签
$git push origin :refs/tags/V1.0 //删除远程标签,(在此之前必须删除本地标签V1.0)
3.git的使用技巧
a.远程仓库上可以fork别人的项目然后,clone到本地进行二次开发
b.可以编写.gitignore文件实现添加到工作区的时候忽略其中某些文件
c.两个人人,或者一个人在两台电脑上修改同一段代码,其中一方push到远程之后,另一方push时,必然要git pull一下更新本地仓库,然后查看双方修改的冲突在哪里,对冲突再次修改才能push到远程
d.搭建git服务器
。$ sudo apt-get install git //在服务器端安装git软件
。。$sudi adduser git //创建一个git用户,用来运行git服务。
。。。收集需要登陆的用户的公匙(id_rsa.pub文件里的
),将所有用户的公匙导入到文件/home/git/.ssh/authorized_keys,一行一个,//人数少可以使用此文件,人数多了可以使用Gitosis来管理
。。。$ sudo git init --bare sample.git //在选定的作为仓库的目录中输入此命令,会创建一个名字为sample.git的空仓库
。。。。$ sudo chown -R git:git sample.git //把owner改成git
。。。。。出于安全考虑,创建的git用户不允许登陆shell,通过将/etc/passwd里面的git:x:1001:1001:,,,:/home/git:/bin/bash改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell即可,这样git用户就可以通过ssh链接,但是不能使用shell登陆
。。。。。。在各自用户的电脑上使用$ git clone git@server:/srv/sample.git 克隆仓库就OK
Git 基础应用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。