想学git,给你最详细的总结!!!!!

1.目的:

  1. 学习版本控制
  2. 多人协作(协同开发)

版本控制系统(version control system简称VCS),是一种记录一个 或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
你可以把它想象成一个文件时光机,有了它你就可以将某个文件回溯到之前的状态,甚至将整个项 目都回退到过去某个时间点的状态;你可以比较文件的变化细节,查出是谁的修改在哪里引入了问 题代码,即便你不小心错删了一些文件也能够通过它很方便的找回。

仓库 (Repositry)

收藏 (Star)

复制克隆项目(Fork)

发送请求(Pull Request)

关注(Watch)

事务卡片(Issue)

  1. git 版本历程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2. git 和 github 的区别

git :是一种抽象的,相当于一种协议,(钱)
github : 相当于是对git 的一种实现 (人民币)

这篇文章记录个人常用的一些命令,和记不住的一些命令。

img

2.安装

在 Windows 上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包:

http://msysgit.github.io/

完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。

3.配置

  1. 首先是配置帐号信息
git config --global user.name zhuqiang
git config --global user.email 1781672547@qq.com

git config --list          //查看配置的信息

git help config          //获取帮助信息

配置密钥

ssh-keygen -t rsa -C zhuqiang9707@163.com          //生成密钥

ssh -T git@github.com          //测试是否成功

配置别名,git的命令没有自动完成功能,有点坑哈,别名派上了用场

git config --global alias.st status          //git st
git config --global alias.co checkout          //git co
git config --global alias.br branch          //git br
git config --global alias.ci commit          //git ci

笔者一般只配置配置这几个,你也可以配置其他命令。

4.新建仓库

  1. 初始化

    git init          //初始化
    git status          //获取状态
    
  2. 添加到暂存区

    git add [file1] [file2] ...          //.或*代表全部添加
    
  3. 提交版本(提交到本地)

    git commit -m "message"          //此处注意乱码  这里的message 的对版本的介绍 "init html css" 初始化html css
    
    
  4. 提交到远程仓库

git remote add origin git@github.com:yanhaijing/test.git          //添加源
git push -u origin master          //push同事设置默认跟踪分支  
//origin 源项目的地址
//master  分支

5.从现有仓库克隆

git clone git://github.com/yanhaijing/data.js.git	
git clone git://github.com/schacon/grit.git mypro         //克隆到自定义文件夹

6. 本地

1.添加到暂存区
git add *          // 跟踪新文件
git add -u [path]          // 添加[指定路径下]已跟踪文件

# 逐个添加文件
git add filename

# 添加当前目录中的所有文件
git add -A

# 添加当前目录中的所有文件更改
git add .

# 选择要添加的更改(你可以 YN 完成所有更改)
git add -p

2.版本的切换
   //通过 git reflog  查看到的版本id 
   git reset HEAD          //取消已经暂存的文件
   git reset --mixed HEAD    //同上
   git reset --soft HEAD          //重置到指定状态,不会修改索引区和工作树
   git reset --hard HEAD         //重置到指定状态,会修改索引区和工作树
   git reset -- files         //重置index区文件

   git reset HEAD^   //添加^ 向前回滚一个版本
   // 切换回3或5次提交
    git reset HEAD~3  
    git reset HEAD~5 -- filename # for a specific file
4.文件提交

我们可以使用 git commit -m '提交信息' 来将文件提交到 Git。对于提交简短消息来说,这一切都很好,但是如果你想做一些更精细的事情,你需要来学习更多的操作:

 // 提交暂存文件,通常用于较短的提交消息
git commit -m 'commit message'

 // 添加文件并提交一次
git commit filename -m 'commit message'

 // 添加文件并提交暂存文件
git commit -am 'insert commit message'

 // 更改你的最新提交消息
git commit --amend 'new commit message' 

git commit -a              // 跳过使用暂存区域,把所有已经跟踪过的文件暂存起来一并提交
git commit -v              // 提交时显示所有diff信息
5.撤销操作
git revert HEAD                  //撤销前一次操作
git revert HEAD~                 //撤销前前一次操作
git revert commit                // 撤销指定操作
6.查看差异
git diff file                  //查看指定文件的差异
git diff --stat               //查看简单的diff结果
git diff                       //比较Worktree和Index之间的差异
git diff --cached               //比较Index和HEAD之间的差异
git diff HEAD                   //比较Worktree和HEAD之间的差异
git diff branch                  //比较Worktree和branch之间的差异
git diff branch1 branch2          //比较两次分支之间的差异
git diff commit commit          //比较两次提交之间的差异
7.查看日志
git log                         //查看最近的提交日志

git log --pretty=oneline          //单行显示提交日志
git log --graph                  // 图形化显示
git log --abbrev-commit          // 显示log id的缩写
git log -num                    //显示第几条log(倒数)
git log --stat                 // 显示commit历史,以及每次commit发生变更的文件
git log --follow [file]        // 显示某个文件的版本历史,包括文件改名
git log -p [file]               // 显示指定文件相关的每一次diff

7.分支

1.列出分支

git branch               //列出本地分支
git branch -r            //列出远端分支
git branch -a            //查看存储库的所有当前分支,包括本地和远程分支。
git branch -v            //查看各个分支最后一个提交对象的信息
git branch --merge        //查看已经合并到当前分支的分支
git branch --no-merge      //查看为合并到当前分支的分支



git branch --set-upstream dev origin/dev          //将本地dev分支与远程dev分支之间建立链接

2.创建分支

git branch test                                 //新建test分支
git branch branch [branch|commit|tag]             // 从指定位置出新建分支
git branch --track branch remote-branch          // 新建一个分支,与指定的远程分支建立追踪关系

3.重命名分支

git branch -m old new          //重命名分支

4.删除分支

git branch -d test         //删除test分支
git branch -D test         //强制删除test分支

//删除远程分支
git push origin --delete 分支名

5.切换分支

git checkout test               //切换到test分支
git checkout -b test           //新建+切换到test分支
git checkout -b test dev       //基于dev新建test分支,并切换

6.合并分支

git merge test                 //将test分支合并到当前分支
git merge --squash test       // 合并压缩,将test上的commit压缩为一条

git cherry-pick commit         //拣选合并,将commit合并到当前分支
git cherry-pick -n commit      //拣选多个提交,合并完后可以继续拣选下一个提交
git rebase master         //将master分之上超前的提交,变基到当前分支
git rebase --onto master 169a6          //限制回滚范围,rebase当前分支从169a6以后的提交
git rebase --interactive          //交互模式	
git rebase --continue         // 处理完冲突继续合并	
git rebase --skip         // 跳过	
git rebase --abort         // 取消合并

7.备份分支

 // 将新的本地分支作为备份
git push -u origin branch_2

8.从分支上下载

   git clone -b 远程分支名称  https://GitHub.com/username/xxx.git

8.远端

1. 合并分支

git merge origin/branch         //合并远端上指定分支

2.拉去分支

git fetch origin remotebranch[:localbranch]         // 从远端拉去分支[到本地指定分支]

git pull origin dev(所要拉取仓库,一般不是master正式,采用dev为佳)
git pull origin remotebranch:localbranch         // 拉去远端分支到本地分支

3.添加分支到远程仓库

git push origin branch         //将当前分支,推送到远端上指定分支
git push origin localbranch:remotebranch         //推送本地指定分支,到远端上指定分支

4.删除远程的仓库的分支

git push origin :分支名        //删除远端指定分支
git push origin 分支名 --delete  //删除远程分支
git branch -dr branch          // 删除本地和远程分支
git checkout -b [--track] test origin/dev         //基于远端dev分支,新建本地test分支[同时设置跟踪]

git是一个分布式代码管理工具,所以可以支持多个仓库,在git里,服务器上的仓库在本地称之为remote。

个人开发时,多源用的可能不多,但多源其实非常有用。

git remote add origin1 git@github.com:yanhaijing/data.js.git

git remote         //显示全部源
git remote -v         //显示全部源+详细信息

git remote rename origin1 origin2         //重命名

git remote rm origin         //删除

git remote show origin         //查看指定源的全部信息

标签

当开发到一定阶段时,给程序打标签是非常棒的功能。

git tag         //列出现有标签	

git tag v0.1 [branch|commit]          // [从指定位置]新建标签
git tag -a v0.1 -m 'my version 1.4'         //新建带注释标签

git checkout tagname         //切换到标签

git push origin v1.5         //推送分支到源上
git push origin --tags         //一次性推送所有分支

git tag -d v0.1         //删除标签
git push origin :refs/tags/v0.1         //删除远程标签

总结

啊哈!终于总结完了,以后不会的时候,再也不用到处去找了。

其实还有两个最有用的命令还未提到。

git help *         //获取命令的帮助信息
git status         //获取当前的状态,非常有用,因为git会提示接下来的能做的操作

最后再补一个救命的命令吧,如果你不小心删错了东西,就用下面的命令,可以看到你之前操作的id,大部分情况下是可以恢复的,记住git几乎不会删除东西。

git reflog          // 显示最近操作的commit id

看谁写了什么

### 显示带有作者姓名的文件的更改历史记录
git blame 'filename'

### 显示带有作者姓名和 git commit ID 的文件的更改历史记录
git blame 'filename' -l

多人协作开发

  1. 一个人的账号作为公共的仓库 (admin 管理)

  2. admin 创建一个项目,并在项目中的settings 中添加协作开发者

  3. 协同开发者(me) 收到 admin 的邮件邀请,并同意邀请

  4. 这样me 的项目主页中会多出 协作开发的项目,将项目克隆到本地

  5. 在本地库中的操作

    git clone XXX
    //创建分支
    git branch dev  // 创建dev 分支
    
    //切换分支
    git checkout test         //切换到test分支
    
    //创建并切换分支
    git checkout -b test         //新建+切换到test分支
    
    //添加到暂存区
    git add .
    
    git commit -m "html"
     
    git push -u origin dev
    
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值