git教程总结(上)

今天看了廖雪峰老师的git教程,为了加深记忆以及为了以后查阅方便,总结一下。

克隆远程库到本地库 -> 本地库修改 -> 链接本地库和远程库 -> 本地库提交到远程库

所有的命令都是git开始

git add <filename> 工作区->暂存区
git rm <filename> 删除 ==》 git add <filename> 
git commit -m "commit hint" 暂存区->当前分支
git init 初始化一个本地目录为git管理的版本库
git status 查看git当前状态 
git diff <filename> 查看file文件的修改

git remote rm <remoteName> 删除远程库的链接
git remote add <remoteName> remoteUrl 添加远程库的链接,其中的url为 git@github.com:<username>/<repositoryName>.git
git push remoteName branchName 提交本地库到远程库
git push -u remoteName branchName 提交本地库到远程库(第一次)
git clone remoteUrl 克隆远程库到本地库

git checkout -- <filename> 回滚工作区的版本,其实是用版本库中的版本替换工作区中的版本
git reset HEAD <filename> 回滚暂存区的版本,并把暂存区的修改回退到工作区
git reset commitId/head^/.. 回滚本地库的版本
git log 查看commitId

git介绍

1.Git是目前世界上最先进的分布式版本控制系统(没有之一)。

2.对于分布式版本控制系统,每个人的电脑上都是一个完整的版本库。

3.一般而言,分布式版本控制系统通常也有一个充当“中央服务器”的电脑,但是这个服务器仅仅用来方便大家交换自己的修改(eg..github、码云)

git安装

1.可以从Git官网直接下载安装程序,(网速慢的同学请移步国内镜像),按照默认选项安装即可。

安装完成后,找到git bash,蹦出一个类似命令行窗口的东西,以后的命令行相关操作均在git bash中进行。

2. 安装之后配置用户名和邮箱,一般和自己申请的github账号的用户名和邮箱相同。git是分布式控制系统,所以每台机器都必须自报家门。

(用户名可以不同,但是邮箱必须相同)。

$ git config --global user.name "your name"
$ git config --global user.email "email@XX.com"

git config文件用于配置git仓库,--global参数表示为全局配置,也就是对于你这台电脑上的全部git仓库都会使用这个配置。

3. 生成ssh密钥

$ ssh-keygen -t -rsa -C "youremail"

用户目录下,里面有id_rsa(私钥)和id_rsa.pub(公钥),登录github,打开头像-> setting -> ssh and GPG key,点击 new ssh key,填上任意Title,在Key文本框里粘贴id_rsa.pub中的内容。

4.让git显示颜色

$ git config --global color.ui true

5.忽略特殊文件:编写.gitignore,放在git工作取得根目录下,把不往远程库提交的文件名写入该文件中。

add -> commit该文件

6.配置别名

$ git config --global alias.<name> <rawName>

可以用Name替换rawName在命令行输入

推荐使用一下配置,使用git lg 代替 git log --......,方便查看修改。

git config --global 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 init 初始化一个本地仓库
$ git remote add <remoteName> git@github.com:<username>/<repositoryName>.git 建立远程库链接
remoteName为远程仓库名,一般为origin useaname为github账户名,repositoryName为仓库名
$ 第一次提交: git push -u <remoteName> <BranchName>  -u会关联本地master分支和远程master分支
$ 其余的: git push <remoteName> <BranchName> 
$ git remote rm <remoteName> 删除远程库链接

从远程库复制到本地库

$ git clone remoteUrl   克隆一个远程库到本地库 remoteUrl = git@github.com:<username>/<repositoryName>.git 建立远程库链接
remoteName为远程仓库名,一般为origin useaname为github账户名,repositoryName为仓库名
$ cd XXX 进入克隆后的本地库

本地版本库的基本操作

1.修改文件后使用git status查看状态


上面代码告诉我们,readme.txt文件已经修改过了,但是尚未add

注意git status中返回的命令,红线圈出来的。

2.提交文件到本地库

$ git add <filename>  增加修改到暂存区

3.提交删除到本地库

$ rm <filename> 删除工作区的文件
$ git rm <filename> 删除命令放入缓存区 和 git add <fiename>作用相当
$ git checkout -- <filename> 撤销删除工作区的文件 

4.撤销修改

撤销修改
    若只是更改了工作区的文件
        git checkout -- <filename> 回滚工作区的该文件到上一次git add或者git commit,
        如果缓存区有,则回滚到缓存区中文件的状态;否则,回滚到版本库中文件的状态。
    若只是放入了缓存区 add
        git reset HEAD <filename> 把暂存区的修改回退到工作区,Head表示为最新版本。       
        git checkout -- <filename> 回滚工作区的文件
    若提交到了本地版本库 commit
        git reset head^

5.把所做的修改提交到本地库

git commit -m "commit hint" 暂存区->本地库

版本回退问题

1.在git中,head表示当前版本,上一个版本是head^,上上一个版本是head^^,往上100个版本是head~100

2.版本号没必要写全

3.工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

4.Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫head。

5.git跟踪并管理的是修改

版本回退:
git log查看要回退的版本的commitId,一般 git log --pretty = oneline
git reset --hard commitId/head^/head^^/...  回退到commitId/head^/head^^/...指定的版本
git reflog 用来记录每一次命令,一般用于重返未来
小tips:

1.版本库,又名仓库,英文名repository,可以认为是一个目录,该目录内的所有文件是仓库内的货物,被git管理。每个文件的增加、修改、删除git都能追踪,也可以还原之前的某个状态。

2.尽量使用纯文本编写文件,git无法追踪二进制格式文件的改变,word格式也为二进制格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值