工作常用 Git 命令

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 <branch-name> // 先从远程分支抓取最新代码
2. git merge --no-ff -m '<merge message>' // 将抓下来的远程代码和本地代码合并

提交代码到仓库

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

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

推送本地代码到远程

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

2. 简明指南

2.1 创建新仓库

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

git init

以创建新的 git 仓库。

2.2 检出仓库

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

git clone <respository-path>

2.3 添加和提交

你可以提出更改(把它们添加到暂存区),使用如下命令:
git add <filename> 或 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 <branch>

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

git add <filename>

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

git diff <source_branch> <target_branch>

2.7 查看历史

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

git log

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

git log --author=<name>

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

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 <file-name>

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

git checkout -- fileName

版本回退到上一个版本:

git reset --hard HEAD^

版本回退到某个提交:

git reset --hard <commit-id>

2.9 删除文件

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

2.10 远程仓库命令总结

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

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

ssh-keygen -t rsa -C "youremail@example.com" //使本机可以往github上提交

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

git remote add origin git@github.com:user-name/respository-name.git

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

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

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

git push origin branch-name

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

git clone git@github.com: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 <branch-name>

切换分支:

git checkout<branch-name>

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

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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值