Denua 博客

Git 工具的使用

发布时间: 2018-04-11 23:29   分类 : 其他    标签: 工具 浏览: 2847   

Git 是一个分布式版本控制系统, 用于版本控制, 协作开发。

创建一个仓库

代码仓库就是一个可以控制版本的文件夹, 这个文件夹可以在任意位置。

mkdir /home/project
cd /home/project

创建一个文件夹后, 进入该目录, 初始化为一个仓库

git init

这时, 将提示 Initialized empty repository in /home/project/.git/, 并在该目录下创建了一个文件夹 .git 这个文件夹里的是关于版本更改的各种信息, 不必理会

提交更新

我们将项目文件放到 /project,比如 readme.txt, 光是放到该目录是不够的, 还需要将更新提交到仓库。执行以下命令

git add readme.txt
git commit -m "readme"

执行 add 命令时无回显,表示成功, 执行 commit 命令时提示

[master 9865asd] readme
1 file changed, 3 insertions(+), 1 deletion(-)

提示成功修改的信息, 其中每次执行 commit 命令之前都是视为一次更改, add 命令可以添加多个文件, commit 命令后的参数 m 表示这次更改的注释所有之前 add 的文件都将添加这个更新注释。

查看历史版本

命令

git log

提示

commit 02121sdf2a2df2asfd12a1sdf (HEAD -> master)
Author: denua ( denua#qq.com )
Date: Wed Apr 11 14:51:49 2018 +0800

    readme

其中 commit 后的一串为 id用于标识每个版本, HEAD 表示这个是当前版本, Author 表示提交者 , date 日期, 最后 readme 为版本更新注释

版本回退

假如我修改了 readme.txt , 更新了仓库, 更新注释为 new version。执行命令

git reset --hard HEAD^
  • 注: window中把 HEAD^ 改为 HEAD~ 或者 "HEAD^"

其中 HEAD 表示当前版本 ^ 表示上一个版本, 如果将 HEAD^ 改为 ^^ 则表示上上个版本 ^8 表示往前八个版本, 执行这个命令回显

HEAD is now at 9865asd readme

表示回到了上一个版本, 如果要列表很长, 不知道到底是第几个版本, log 命令可以查看所有记录。执行以下命令可得到一样的效果

git reset --hard 02121sdf2a2df2asfd12a1sdf

在这个命令中, 将之前的 HEAD^ 改为了 02121sdf2a2df2asfd12a1sdf, 这个是版本 id , 如果觉得太长可以 只输前几位, 只要没有前几位一样的就可以。

如何回退到未来版本

假如我现在回到了第 N 个版本以前, 想回到最新版本怎么办, log 命令只有当前版本之前的版本, 并没有当前版本之后的版本, 这时候就是用 reflog 命令

git reflog

回显

f45d45f (HEAD -> master): HEAD@(0) moving   to 02121sdf2a2df2asfd12a1sdf
25asdf1 HEAD@(2): commit: new version
d62cd9d HEAD@(3): commit(initial):readme

git reset --hard 25asdf1

即可回到未来版本 new version

添加到远程仓库

先在 GitHub 注册一个账号, New repository 添加一个仓库, 设置一个仓库名称, 勾选 Initialize this repository with a README, 自动创建一个 README 文件。

得到一个链接: git@github.com:你的昵称/Repository名称.git

之后创建一个 SSH Key,进入 Git Bash(注意, 在windows下不是shell或者cmd),输入命令

ssh-keygen -t rsa -C "youremail@example.com"

其余选项默认回车即可, 可以在用户目录(win 在 c:/user/username/.ssh/下)找到生成的一对秘钥,id_rsa.pub(公钥) 和 id_rsa(私钥), 把私钥中的内容复制到 GitHub 中(settings > SSH and GPG keys > new SSH key).

切换到本地仓库, 输入命令

git remote add origin git@github.com:你的昵称/Repository名称.git

输入yes

git push -u origin master

即可在 GitHub 上看到你提交到远程仓库的内容。以后只要执行

git push origin master

即可同步到远程。

从远程同步到本地

git clone git@github.com:你的昵称/Repository名称.git

即可

创建分支

创建分支 git branch 分支名称

转到分支 git checkout 分支名称

分支可以单独更新不影响住分支, 最后完成了分支的任务可以合并主分支。创建并转到分支, 命令

git checkout -b 分支名称

当当前分支任务完成了以后合并主分支

git merge 分支名称

删除分支

git branch -d 分支名称

(完)

评论    

Copyright denua denua.cn