你好,游客 登录 注册 搜索
背景:
阅读新闻

Git常用的使用方法

[日期:2017-03-31] 来源:Linux社区  作者:Linux [字体: ]

Git常用的使用方法

apt-get install git #Ubuntu 下安装git
yum install git # CentOS下安装git
#安装git之后简单的设置
git config --global user.name "joedlut"
git config --global user.email "linuxidcdejiush@linuxidc.com"

创建一个版本库(git仓库)
mkdir /home/joedlut/learngit #常见一个目录
cd /home/joedlut/learngit
git init # 创建版本库,即让该目录下的文件可以被git管理

如何向仓库中添加文件?
cd /home/joedlut/learngit # 要想让git管理文件,必须将文件放到git仓库中
vim readme.txt # 添加两行数据
git add readme.txt #将文件添加到仓库中
git commit -m "add a readme.txt" #将文件提交到仓库中 -m指定提交的说明,建议不要省略
# 可以一次添加多个文件,然后一次性提交 如下
git add file1.txt
git add file2.txt file3.txt
git commit -m 'add three files'

查看仓库的状态
git status #可以看到那些文件做出了修改但是没有提交到版本库

查看仓库的一个文件具体改动了什么
git diff readme.txt  #格式和linux下的diff命令显示的内容一样

将一个文件的修改提交到版本库 (分两步 add 与commit)
git add readme.txt #注意 添加修改同样使用的是add
git commit -m 'modified the content of readme.txt'

查看版本库的提交记录(方便做后面的回退操作)
git log #由近及远的显示提交日志
git log --pretty=oneline # 同样显示提交日志,但是输出信息相比git log得到了简化

利用git可以回退到版本库在历史中的任意一个版本,git使用HEAD表示当前版本,使用HEAD^表示上一个版本,使用HEAD^^表示上上一个版本 那如何会退到上一个版本呢
git reset --hard HEAD^

如何会退到历史的某个版本后, 又想再回到原来新的版本,此时要想回到原先“未来”的版本,必须知道当时未来版本的提交号 也是就是commit_id 查看这个commit_id可以使用reflog
git reflog #这个命令可以显示每一次git执行的命令
git reset --hard commit_id # 这个id是你想回到的版本的commit_id

git的区域分为工作区和暂存区,我们对于文件的修改都是在工作区内完成的,git add做的事情就是将新建的文件后者文件的修改添加到暂存区,文件只有在暂存区下才可以被跟踪管理,git commit做的事情就是将暂存区的修改一次性提交到分支。由此可见,修改必须添加到(git add)暂存区中才可以被提交
查看工作区与版本库里最新版本的区别
git diff HEAD -- readme.txt

如何撤销文件的修改?分为两种情况
第一种 修改了文件但是没有使用git add将文件的修改添加到暂存区的
git checkout -- readme.txt # 注意不要省略--  否则会变成切换到另一个分支的命令

第二种 已经将文件的修改使用git add提交到了暂存区
git reset HEAD readme.txt #撤销暂存区的修改
git checkout -- readme.txt

如何从版本库中删除一个文件?注意,从版本库中删除一个文件,就无法恢复了
git rm test.txt
git commit -m 'remove test.txt'

如何仅仅是从工作区中删除了一个文件,而没有从版本库中删除一个文件,则可以恢复这个文件
git checkout -- test.txt

如何连接到git仓库?
ssh-keygen -t rsa -C 'linuxidc@linuxidc.com'
cd  ~/.ssh
将公钥id_rsa.pub添加到github端

将本地库与远程库相关联
git add remote origin git@github.com:joedlut/learngit.git #origin是远程库的名字,建议是origin
#假设远程库上
git push -u origin master #将本地库的内容推送到远程库,注意,第一次推送要使用-u选项,-u会将本地的master与远程master关联
git push origin master # 之后每次本地做了修改,可以通过该命令实现本地库与远程库的同步

假设github有个远程库gitskills 如何将该库克隆到本地?
git clone git@github.com:joedlut/gitskills.git

创建一个分支dev,,并且切换到该分支
git checkout -b dev #相当于两条命令git branch dev ; git checkout dev

查看分支
git branch #查看所有分支,当前分支会带有一个*号

切换到master分支
git checkout master

将dev分支合并到master分支
git merge dev # 默认会采用fast-forward的方式合并

删除dev 分支
git branch -d dev

当master分支与另一个分支(feature1)都有git add 跟git commit操作的时候,合并分支的时候会发生冲突而失败,此时应该解决冲突之后再执行git add 和git commit,然后再执行git branch -d  feature1
查看分支的合并情况
git log --graph --pretty=oneline

git merge默认会采用fast-forward方式,此时会丢失分支信息(即使用git log查看的时候不会显示分支的合并),要想保存分支信息,可以使用--no-ff选项
git merge -no-ff feature1
git log --graph --pretty=oneline --abbrev-commit

当在dev分支工作时候,需要临时修改bug的时候,可以使用git stash保存现场后,在切换到master分支,然后在创建bug分支,修改bug后再返回到master分支,合并bug分之后,返回dev分支后,在使用git stash pop 恢复现场,完整过程如下
git stash  # dev分支
git checkout master
git checkout -b bug101
############ 修改bug git add git commit....###############
git checkout master
git merge --no-ff bug101
git checkout dev
git stash list # 查看保存的现场信息
git stash pop # 恢复现场,并且删除现场信息,即通过git stash list看不到任何内容

如果需要添加一个新功能,需要创建一个feature分支,当在该feature分支上执行git add和git commit,没有执行合并(git merge)的话,无法通过git branch -d feature 删除该分支,若要强行删除该分支,需要执行
git branch -D feature #强行删除该分支

 查看远程库的信息
git remove -v # -v选项显示详细信息

Git 教程系列文章: 

GitHub 使用教程图文详解  http://www.linuxidc.com/Linux/2014-09/106230.htm 

Git使用图文详细教程  http://www.linuxidc.com/Linux/2016-11/136781.htm

Ubuntu Git安装与使用 http://www.linuxidc.com/Linux/2016-11/136769.htm

Git 标签管理详解 http://www.linuxidc.com/Linux/2014-09/106231.htm 

Git 分支管理详解 http://www.linuxidc.com/Linux/2014-09/106232.htm 

Git 远程仓库详解 http://www.linuxidc.com/Linux/2014-09/106233.htm 

Git 本地仓库(Repository)详解 http://www.linuxidc.com/Linux/2014-09/106234.htm 

Git 服务器搭建与客户端安装  http://www.linuxidc.com/Linux/2014-05/101830.htm 

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm 

分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm 

Git从入门到学会 http://www.linuxidc.com/Linux/2016-10/135872.htm

Git基本操作详解 http://www.linuxidc.com/Linux/2016-10/135691.htm

Git 的详细介绍请点这里
Git 的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-03/142406.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款