About Git

概念

分布式版本控制系统。

集中式和分布式的区别:

集中式:版本库放在在中央服务器,如 SVN,CVS

分布式:每个人的电脑都是版本库

安装

查看系统有没有安装 Git:

$ git

Linux 安装命令:

$ sudo apt install git

配置:

$ git config --global user.name "你的名字"
$ git config --global user.email "你的邮箱" 

使用

初始化 Git 仓库:

$ git init

把修改提交到暂存区:

// 添加一个文件
$ git add filename
// 添加多个文件
$ git add filename1 filename2 ...
// 添加所有文件
$ git add .

把暂存区内容提交到仓库:

$ git commit -m "修改总结"

查看仓库当前状态:

$ git status

查看所做修改:

$ git diff [filename] // 比较工作区与暂存区某文件的区别
$ git diff HEAD -- [filename] // 比较工作区与版本库最新版本某文件的区别

查看提交日志:

$ git log
$ git log --pretty=oneline // 简洁版
$ git log --oneline
$ git reflog
$ git log --graph          // 有图

ps:版本号不是递增,而是SHA1生成,在分布式环境下防止版本号冲突。

版本回退:

$ git reset --hard HEAD^    // 回退到上一个版本
$ git reset --hard HEAD^^   // 回退到上上个版本
$ git reset --hard HEAD~100 // 回退到上100个版本
$ git reset --hard [版本号]  // 回退到某个版本号

查看 Git 命令日志:

$ git reflog

放弃工作区的修改,回到暂存区或版本库最新版本:

$ git checkout -- [filename]

将暂存区修改撤销,放回工作区:

$ git reset HEAD [filename]

将本地仓库推到 Github 仓库:

$ git remote add origin [远程仓库链接]

将当前分支推送到远程:

$ git push -u origin master // -u 参数将本地 master 和远程 master 联系起来
$ git push origin master
$ git push origin [分支名称] // 推送其他分支

克隆远程仓库:

$ git clone [远程仓库链接]

分支:

$ git branch [分支名称]      // 创建分支
$ git branch -d [分支名称]   // 删除分支
$ git branch -D [分支名称]   // 强行删除分支
$ git checkout [分支名称]    // 切换分支
$ git checkout -b [分支名称] // 创建并切换分支
$ git branch               // 查看当前分支
$ git merge [分支名称]      // 将某分支合并到当前分支上
$ git merge --no-ff -m "message" [分支名称] // 不使用 Fast Forward 模式

快照:

$ git stash // 保存快照
$ git stash list // 查看快照列表
$ git stash apply // 恢复快照
$ git stash drop // 删除快照
$ git stash pop // 恢复并删除快照

查看远程库的信息:

$ git remote
$ git remote -v // 详细信息

从远程仓库获取代码:

$ git pull

将远程仓库分支与本地仓库分支建立链接:

$ git branch --set-upstream-to=[远程仓库分支] [本地仓库分支]

推送本地代码到远程仓库:

$ git push

将本地未 push 的分叉提交历史整理成直线:

$ git rebase

标签:

$ git tag [标签号]  // 打标签
$ git tag          // 显示所有标签
$ git tag [标签号] [版本号]  // 根据版本号打标签
$ git show [标签号] // 查看标签信息
$ git tag -d [标签号] // 删除标签
$ git push origin [标签号] // 推送标签号到远程
$ git push origin --tags  // 推送所有标签到远程
$ git push origin :refs/tags/[标签号] // 删除远程仓库标签
发布了42 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/sanmao123456_/article/details/83052054