1.1 git init
用 git init 在目录中创建新的 Git 仓库,我们可以在任何时候、任何目录中这么做,这完全是本地化的操作.
git init
1.2 git clone
使用 git clone 拷贝一个 Git 仓库到本地,使得我们能够查看该项目,或者进行修改.
git clone [url]
2. 基本快照命令
2.1 git add
git add 命令可将该文件添加到Git缓存.
git add
'注意:
git add 命令只是将文件存入到了git的缓存区,此时还没有将该文件存储到本地仓库,更没有存储到远程仓库!
2.2 git status
git status 查看我们自上次提交之后是否有修改.
git status
git status -s
2.3 git diff
执行 git diff 来查看执行 git status 的结果的详细信息.
git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别.git diff 有两个主要的应用场景.
- 尚未缓存的改动: git diff;
- 查看已缓存的改动: git diff --cached;
- 查看已缓存的与未缓存的所有改动: git diff HEAD;
- 显示摘要而非整个 diff: git diff --stat
2.4 git commit
使用 git add 命令将想要快照的内容写入缓存区,而执行 git commit 将缓存区内容添加到仓库中.
Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址.
git config --global user.name 'yourname'
git config --global user.email youremail
将文件写入缓存区并提供提交注释
git commit -m "update message"
注意:
此处-m后面的信息,需要用双引号括起来,否则可能会产生error: pathspec异常!
2.5 git reset HEAD
git reset HEAD 命令用于取消已缓存的内容,也就是撤销对git add的操作.
git reset HEAD --
3. 拉取与推送
3.1 git pull
git pull命令用于从另一个存储库或本地分支获取并集成(整合).git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并,它的完整格式稍稍有点复杂.
git pull :
将远程存储库中的更改合并到当前分支中。在默认模式下,git pull
是git fetch
后跟git merge FETCH_HEAD
的缩写.更准确地说,git pull
使用给定的参数运行git fetch
,并调用git merge
将检索到的分支头合并到当前分支中.
3.2 git push
git push
命令用于将本地分支的更新,推送到远程主机.它的格式与git pull
命令相似.
git push :
比如:
git push origin master
注意:
Windows系统下"Incorrect username or password ( access token )的问题"的解决: 在push代码到远程仓库的时候,cmd客户端可能会产生如下异常: 是因为Wins系统把git的凭证存在windows系统中,解决办法为修改凭证或者直接删除掉默认的凭证,重新录入争取的凭证即可.


也可以直接删除掉该凭证,重新录入:
4.1 创建git tag
如果我们达到一个重要的阶段,并希望永远记住那个特别的提交快照,此时可以使用 git tag
给它打上标签.
比如说,我们想为我们的 商城 项目发布一个"1.0.0"版本,此时可以用 git tag -a v1.0.0
命令给最新一次提交打上(HEAD) "v1.0.0" 的标签.
-a
选项意为"创建一个带注解的标签",不用 -a 选项也可以执行的,但它不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解,我们推荐一直创建带注解的标签.
git tag -a v1.0.0
如果我们要查看所有标签可以使用以下命令:
git tag
4.2 推送标签到远程仓库
git push并不会把tag标签传送到远端服务器上.只有通过显式命令才能分享标签到远端仓库.
1.push单个tag,命令格式为: git push origin [tagname]
例如:
git push origin v1.0.0 #将本地v1.0的tag推送到远端服务器
2.push所有tag,命令格式为: git push [origin] --tags
例如:
git push --tags
或
git push origin --tags
5.add,commit,pull,push几个命令执行顺序
一般情况下,都是add--->commit--->pull--->push.
先 commit 再 pull 再 push 的情况是为了应对多人合并开发的情况:
commit 是为了告诉 git 我这次提交改了哪些东西,不然你只是改了但是 git 不知道你改了,也就无从判断比较;
pull是为了本地 commit 和远程commit 的对比记录,git 是按照文件的行数操作进行对比的,如果同时操作了某文件的同一行那么就会产生冲突,git 也会把这个冲突给标记出来,这个时候就需要先把和你冲突的那个人拉过来问问保留谁的代码,然后在 git add && git commit && git pull 这三连,再次 pull 一次是为了防止再你们协商的时候另一个人给又提交了一版东西,如果真发生了那流程重复一遍,通常没有冲突的时候就直接给你合并了,不会把你的代码给覆盖掉.
在commit和push之间多一个pull的操作,目的有两个:第一是为了更新本地代码;第二是便于在本地合并冲突。如果中间没有pull这一步,直接push,有了冲突还是得pull来解决冲突。
6. 切换分支命令Git一般有很多分支,我们clone到本地的时候一般都是master分支,那么如何切换到其他分支呢?主要命令如下:
6.1 查看所有远程分支
git branch -a
可以看到,我们现在在master分支下:
6.2 查看本地分支

6.3 切换分支
如果本地还没有origin/v0.9rc1分支,则执行如下命令形式:
此时执行查看分支命令:
$ git branch
dev
* master
可以看到此时处于dev分支.
再切换回master分支:
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.

当我们在日常开发功能的时候,肯定会涉及到新建分支的问题,这时候我们本地的IDE或者TotorseGit等工具就无法去切换新创建好的分支,因为切换的时候根本找不到那个新建的分支,此时可以去通过刷新分支达到发现新分支的目的.
找到项目的路径并打开Git Bash Here然后去执行如下一条命令即可:
git fetch #刷新分支
git branch -a #查看分支
这时候IDE或TotorseGit等工具也可以切换分支了.