🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 设置用户 ~~~ $ git config --global user.name "Your Name" $ git config --global user.email "email@example.com" ~~~ # 创本地建仓库 1. 选择一个合适的地方,创建一个空目录,设置这个目录为Git仓库 ~~~ $ mkdir learngit $ git init Initialized empty Git repository in /Users/michael/learngit/.git/ ~~~ 2. 向仓库中添加文件(readme) ~~~ $ git add readme.txt ​ $ git add -A 提交所有变化 ​ $ git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new) ​ $ git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件 ~~~ 3. 向仓库中提交文件 ~~~ $ git commit -m "提交说明" ~~~ * `commit`命令一次可以提交多个文件可以先用`add`命令添加多个文件在进行提交 * `add`(注意,可反复多次使用`add`命令,添加多个文件;) ~~~ $ git add file1.txt $ git add file2.txt file3.txt $ git commit -m "add 3 files." ~~~ 4. 查看文件修改状态 `git status`:命令可以让我们时刻掌握仓库当前的状态 ~~~ $ git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) ​   modified:   readme.txt //修改还没有提交 no changes added to commit (use "git add" and/or "git commit -a") ~~~ 5. 查看文件修改内容 `git diff`:顾名思义就是查看difference,显示的格式正是Unix通用的diff格式 ~~~ $ git diff readme.txt diff --git a/readme.txt b/readme.txt index 46d49bf..9247db6 100644 --- a/readme.txt +++ b/readme.txt @@ -1,2 +1,2 @@ -Git is a version control system. +Git is a distributed version control system. Git is free software. ~~~ 6. 查看提交日志 `git log`:命令显示从最近到最远的提交日志,我们可以看到3次提交,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上`--pretty=oneline` ~~~ $ git log $ git log --pretty=oneline ~~~ 7. 回退版本 ~~~ $ git reset --hard HEAD^ ~~~ 首先,Git必须知道当前版本是哪个版本,在Git中,用`HEAD`表示当前版本,也就是最新的提交`1094ad`,上一个版本就是`HEAD^`,上上一个版本就是`HEAD^^`,当然往上100个版本写100个`^`比较容易数不过来,所以写成`HEAD~100`。 8. 查看提交的历史命令 用`git reflog`查看命令历史,以便确定要回到未来的哪个版本。 9. 撤回修改 ~~~ git checkout -- readme.txt ~~~ 命令`git checkout -- readme.txt`意思就是,把`readme.txt`文件在工作区的修改全部撤销,这里有两种情况: * 一种是`readme.txt`自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态; * 一种是`readme.txt`已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。 总之,就是让这个文件回到最近一次`git commit`或`git add`时的状态。 10. 删除文件 ~~~ $ rm test.txt //删除提交的文件 (本地文件) $ git rm test.txt //删除仓库中的文件 $ git checkout -- test.txt //本地删除错误可以回复 ~~~ # 远程仓库 1. 创建本地SSH Key: ~~~ $ ssh-keygen -t rsa -C "youremail@example.com" Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa): ~~~ * 一路下一步,找到key保存的文件`/c/Users/Administrator/.ssh/id_rsa`: 找到文件`id_rsa.pub`粘贴出key放到GitHub上对应的位置。 * 这样远程仓库就创建好了。 2. 添加远程库 * 在github上创建仓库 并复制出地址 `git@github.com:Bruceztl/learngit.git` ~~~ $ git remote add origin git@gitee.com:Bruceztl/boot-project.git ~~~ * 请千万注意,把上面的`Bruceztl`替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。 3. 把本地库的所有内容推送到远程库上 ~~~ $ git push -u origin master ~~~ * 把本地库的内容推送到远程,用`git push`命令,实际上是把当前分支`master`推送到远程。 * 由于远程库是空的,我们第一次推送`master`分支时,加上了`-u`参数,Git不但会把本地的`master`分支内容推送的远程新的`master`分支,还会把本地的`master`分支和远程的`master`分支关联起来,在以后的推送或者拉取时就可以简化命令。 4. 提交本地代码到仓库 ~~~ $ git push origin master ~~~ * 把本地`master`分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库! 5. 从远程仓库克隆 ~~~ $ git clone git@github.com:michaelliao/gitskills.git ~~~ * 注意把Git库的地址换成你自己的,然后进入`gitskills`目录看看,已经有`README.md`文件了: # 创建分支 1. 创建一个新的分支 ~~~ $ git checkout -b dev ~~~ 2. 切换到分支 ~~~ $ git branch dev $ git checkout dev ~~~ * `git checkout`命令加上`-b`参数表示创建并切换,相当于以下两条命令: 3. 查看当前分支 ~~~ $ git branch ~~~ `git branch`命令会列出所有分支,当前分支前面会标一个`*`号。 * 我们现在造作的就是`dev`分支了,