版本控制工具GitHub与Git的使用

Git命令行操作

本地库的操作

一、本地库的初始化(创建本地库

       Step1:在创建好的文件夹目录下执行 git init命令,系统自动生成.git文件夹

       Step2:设置签名,有项目级别和系统级别的签名(作用:起到表示开发者信息的作用,与github账号没有关系)

                    签名形式:user.name  user.email

       设置项目级别的签名:当前本地库有效,保存在.git/config中       

Git config user.name [用户名]
Git config user.email [邮箱]

       设置系统级别的签名:当前登陆操作系统的用户范围有效保存在系统的家目录~/gitconfig中{通常只要设置系统级别的就够了}

Git config --global user.name [用户名]
Git config --global user.email [邮箱]

       原则:就近原则,优先使用项目级别

基本操作命令

添加、提交、查看状态

         git status

         作用:查看工作区和暂存区的状态

                  On branch master(在master分支/主干)

                  No commits yet(本地库没有东西可提交)

                  Nothing to commit(暂存区没什么东西)

         git add

         作用:添加到暂存区

git rm --cached <file>

作用:从暂存区中移除

git commit <file>

作用:提交暂存区到本地库(需要输入信息,记录本次提交干什么事)

git checkout -- <file>

作用:

git commit –a

作用:

git reset HEAD <file>

作用:

git commit -m "commit message" <file>

作用:-m “书写添加信息”

查看日志

Git log

作用:操作日志的显示

Git log --pretty=oneline

作用:操作日志的简洁显示

Git log –oneline、

作用:操作日志的更加简洁显示

Git reflog(常用)

作用:操作日志的带指针更加简洁显示

版本的前进与后退

本质是head索引的变化

基于索引值的方式:

         前进/后退:git reset –hard [索引值]

后退:一步

Git reset –hard HEAD^

后退n步

Git reset –hard HEAD~n

文件的删除和找回

前提:已经commit到本地库中

还是通过git reset –hard命令回到某个版本

Hard参数会刷新工作区和暂存区

比较文件

Git diff [文件名]

Git diff [版本号][文件名]

分支操作

Git branch –v    查看分支

Git branch [new branch name]  创建新的分支

Git checkout [branch name] 切换分支

合并分支

         1:切换到被合并的分支上

         2:合并分支

                  Git merge [需要合并的新的分支]

冲突的解决

问题原因:两个分支都修改了相同的文件提交到本地库,git不知道听谁的

1:合并分支

Git merge [分支名]

2:修改合并后产生冲突的文件

         Vim

3:git add [文件名]

4:git commit –m “日志”

         不需要带文件名

创建远程github的别名

Git remote add origin [github的http的url]

Git remote –v

Fetch(取回)

Push(推送)

往github的仓库中推送

Git push origin master

分别是别名+分支

从远程库clone到本地

Git clone [url]

完整的把远程库下载到本地

创建origin别名

初始化本地库

从远程库拉取

Pull=fetch+merge

法1:

Git pull [远程地址的别名] [远程地址的分支名]

法2:

Git fetch [远程地址的别名] [远程地址的分支名](不需要登陆,把远程库的内容抓取到本地,本不会合并到本地库)

Git merge [远程地址的别名/远程地址的分支名](合并远程库)

跨团队协作

Fork到远程库

Pull request到本地仓库

展开阅读全文

没有更多推荐了,返回首页