工作常用 Git 命令

阅读目录:

  1. Git 基础概念
  2. 常用的命令
  3. 简明指南
    3.1 创建新仓库
    3.2 检出仓库
    3.3 添加和提交
    3.4 推送改动
    3.5 分支管理
    3.6 更新与合并
    3.7 查看历史
    3.8 版本回退
    3.9 删除文件
    3.10 远程仓库命令总结
    3.11 分支操作命令总结
  4. 参考文献

Git是Linus Benedict Torvalds更好的管理Linux系统而开发的一个“分布式版本控制工具”,对团队协作开发极其友好。高端大气上档次!

Git命令超级的多,所以本文只列举工作中最常用的几条命令:

0. GIt 基础概念

工作区(Working Directory):简单的说,就是本地可以编辑的文件;

版本库(Repository):工作区有一个隐藏目录 .git ,这个不算工作区,而是Git的版本库;

暂存区(stage):git add 后还没有提交到仓库的中间状态;

此外还有Git为我们自动创建的第一个分支 master,以及指向master的一个指针叫 HEAD

HEAD : 它指向你最后一次提交的结果。

Git 模型图:

Git 模型

1. 常用的命令

一周工作中,最常用的三种命令,总结成三个字:拉、提、推。
即:拉取远程仓库最新代码、提交代码到仓库、推送本地代码到远程

拉取远程仓库最新代码

1. git fetch origin  // 先从远程分支抓取最新代码
2. git merge --no-ff -m '' // 将抓下来的远程代码和本地代码合并

提交代码到仓库

将远程分支代码拉取下来以后,和本地代码合并,解决冲突后,提交自己的修改

1. git add  // 添加文件到暂存区
2. git commit -m ''  // 将暂存区提交到仓库

推送本地代码到远程

1. git push // 将本地代码推送到远程仓库

2. 简明指南

2.1 创建新仓库

创建新文件夹,打开,然后执行

git init

以创建新的 git 仓库。

2.2 检出仓库

克隆远端服务器上的仓库:

git clone

2.3 添加和提交

你可以提出更改(把它们添加到暂存区),使用如下命令:
git add 或 git add --all
这是 git 基本工作流程的第一步;使用如下命令以实际提交改动:

git commit -m "代码提交信息"

现在,你的改动已经提交到了 HEAD,但是还没到你的远端仓库。

2.4 推送改动

你的改动现在已经在本地仓库的 HEAD中了。执行如下命令以将这些改动提交到远端仓库:

git push origin master

可以把 master 换成你想要推送的任何分支

2.5 分支管理

分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。

创建一个叫做“feature_x”的分支,并切换过去:

git checkout -b feature_x

切换回主分支:

git checkout master

再把新建的分支删掉:

git branch -d feature_x

2.6 更新与合并

要更新你的本地仓库至最新改动,执行:

git pull

以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
要合并其他分支到你的当前分支(例如 master),执行:

git merge

在这两种情况下,git 都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。 这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:

git add

在合并改动之前,你可以使用如下命令预览差异:

git diff

2.7 查看历史

如果你想了解本地仓库的历史记录,最简单的命令就是使用:

git log

你可以添加一些参数来修改他的输出,从而得到自己想要的结果。 只看某一个人的提交记录:

git log --author=

一个压缩后的每一条提交记录只占一行的输出:

git log --pretty=oneline --abbrev-commit

或者你想通过 ASCII 艺术的树形结构来展示所有的分支, 每个分支都标示了他的名字和标签:

git log --graph --oneline --decorate --all

看看哪些文件改变了:

git log --name-status

这些只是你可以使用的参数中很小的一部分。更多的信息,参考:

git log --help

最全的一条查看历史命令:

git log --graph --pretty=oneline --abbrev-commit --decorate --all

2.8 版本回退

已经添加到暂存区stage,恢复到工作区:

git reset HEAD

用版本库里的版本替换工作区的版本代码:

git checkout -- fileName

版本回退到上一个版本:

git reset --hard HEAD^

版本回退到某个提交:

git reset --hard

2.9 删除文件

rm fileName //删除本地,可直接git rm
git rm file Name //修改进入缓存区
git commit -m '' //提交到版本库

2.10 远程仓库命令总结

经过以上操作后,代码已经可以提交到本地的Git仓库,下面介绍远程仓库的一些操作

本地Git仓库和GitHub仓库之间的传输密钥:

ssh-keygen -t rsa -C "[email protected]" //使本机可以往github上提交

把本地仓库的内容关联到GitHub仓库:

git remote add origin [email protected]:user-name/respository-name.git

本地库的所有内容推送到远程库(初始化一个远程仓库代码):

git push -u origin master //当前分支master所有代码推送到远程进行初始化

本地修改后提交到远程仓库 (修改推送):

git push origin branch-name

从远程仓库克隆一个仓库到本地 :

git clone [email protected]:zhangyusir/hello.git

本地和远程同时创建分支产生关联:

git checkout -b branch-name origin/branch-name

将本地的分支和远程的分支关联起来:

git branch --set-upstream-to branch-name origin-name

2.11 分支操作命令总结

查看本地分支:

git branch

创建分支并切换:

git checkout -b

切换分支:

git checkout

在当前分支快速合并其他分支:

git merge branch-name

保留分支的提交历史既禁止快速合并:

git merge --no-ff -m "commit message" branch-name

删除分支:

git branch -d branch-name //强制删除-D

将当前分支的修改放到“储藏”:

存储 :git stash 恢复 : git stash pop 列表 : git stash list

3. 参考文献

  1. 廖雪峰:https://www.liaoxuefeng.com/wiki/896043488029600
  2. 阮一峰:http://www.ruanyifeng.com/blog/2014/06/git_remote.html
  3. 简明指南:http://rogerdudler.github.io/git-guide/index.zh.html
  4. Git奇技淫巧:https://github.com/521xueweihan/git-tips
  5. Git Book:https://git-scm.com/book/zh/v2

你可能感兴趣的:(工作常用 Git 命令)