1.Git安装,直接在官网下载安装即可。

2.Git配置,使用config选项,配置名字和邮箱,如下所示

  1. C:\Users\1yyg>git config --global user.name "zhumuxian"
  2.  
  3. C:\Users\1yyg>git config --global user.email "495472831@qq.com"

3.创建仓库,使用init选项

  1. F:\webim>git init
  2. Initialized empty Git repository in F:/webim/.git/

4.添加文件和提交,使用add和commit选项

  1. F:\webim>git add index.js //将文件添加到暂存区
  2.  
  3. F:\webim>git commit -m "add index.js" //提交到master分支
  4. [master 92d277f] add index.js
  5. file changed, insertions(+)
  6. create mode index.js

5.查看仓库当前状态,使用status选项

  1. F:\webim>git status
  2. On branch master
  3. Changes not staged for commit:
  4. (use "git add <file>..." to update what will be committed)
  5. (use "git checkout -- <file>..." to discard changes in working directory)
  6.  
  7. modified: index.js

6.对比当前版本文件和上个版本文件的差异,使用diff选项

  1. F:\webim>git diff index.js
  2. diff --git a/index.js b/index.js
  3. index 06d9b64..0c6787e
  4. --- a/index.js
  5. +++ b/index.js
  6. @@ -, +, @@ $(function(){
  7.  
  8. var originDemension = {};
  9.  
  10. +
  11. +
  12. var videoExtReg = /^\.(?=mpg|3gp|vob|rmvb|mov|flv|avi|wmv|mp4|mkv)/i,
  13. musicExtReg = /^\.(?=flac|ape|wav|mp3|aac|ogg|wma)/i,
  14. wordExtReg = /^\.(?=doc|docx)/i;

7.对于修改过的文件,再次使用add,commit命令提交即可

8.查看仓库提交日志,使用log选项,搭配--pretty=oneline更清晰

  1. F:\webim>git log --pretty=oneline
  2. 973ef9dcb5c4cc3de12fa4e3668a16ff3adb2992 add nihao
  3. c8fbe43e78d3155262e427aa1df246156563cf23 add license.txt
  4. de0edd4c3fc56fdb74fd87ca9dfa0acb82847faa index.js
  5. 92d277f2dbe720179530962b11d785c448c5296a add index.js
  6. 5954ab28619985ab0ad768602578466dc92399fd del index.js
  7. cc4370f6424daf34c34f9b90196ab56857d61f47 add index.js

9.撤销版本,使用reset选项

  1. git reset --hard HEAD^ //HEAD^后面必须跟一个空格,HEAD代表当前版本,HEAD^当前版本的上个版本,一次类推,也可以使用HEAD~[0-9..]来代替
  2.  
  3. git reset --hard commit_id //使用commitId来撤销提交,commitId可以使用git log后者 git reflog来查看

10.查看所有命令,使用reflog选项

  1. F:\webim>git reflog
  2. 973ef9d HEAD@{}: reset: moving to HEAD^
  3. 78ae302 HEAD@{}: reset: moving to HEAD
  4. 78ae302 HEAD@{}: reset: moving to HEAD
  5. 78ae302 HEAD@{}: commit: add heheda again
  6. 973ef9d HEAD@{}: reset: moving to HEAD~
  7. 9fb4130 HEAD@{}: commit: add heheda
  8. 973ef9d HEAD@{}: commit: add nihao
  9. c8fbe43 HEAD@{}: commit: add license.txt
  10. de0edd4 HEAD@{}: commit: index.js
  11. 92d277f HEAD@{}: commit: add index.js
  12. 5954ab2 HEAD@{}: commit: del index.js
  13. cc4370f HEAD@{}: commit (initial): add index.js

11.撤销修改

  1. 情况一:工作区中的内容修改了,但是没有添加到暂存区,可以利用checkout -- file来撤销改动
  2. F:\webim>git status
  3. On branch master
  4. Changes not staged for commit:
  5. (use "git add <file>..." to update what will be committed)
  6. (use "git checkout -- <file>..." to discard changes in working directory)
  7.  
  8. modified: license.txt
  9.  
  10. F:\webim>git checkout -- license.txt
  11.  
  12. F:\webim>git status
  13. On branch master
  14.  
  15. 情况二:
  16. 工作区的改动添加进了暂存区,但是没有提交,可以利用reset HEAD file来撤销修改,然后在使用git checkout -- file来恢复
  17. F:\webim>git reset HEAD license.txt
  18. Unstaged changes after reset:
  19. M license.txt
  20. F:\webim>git checkout -- license.txt

12.删除文件,使用rm选项,然后commit提交即可

  1. F:\webim>git rm license.txt
  2. rm 'license.txt'
  3. F:\webim>git status
  4. On branch master
  5. Changes to be committed:
  6. (use "git reset HEAD <file>..." to unstage)
  7.  
  8. deleted: license.txt
  9.  
  10. F:\webim>git commit -m "del license file"
  11. [master 5c258d3] del license file
  12. file changed, deletions(-)
  13. delete mode license.txt

13.添加远程仓库

由于没有自己的git服务器,这里使用github的服务,首先创建ssh key,采用rsa加密,主要是github用来确认推送者的身份,如下所示

  1. $ ssh-keygen -t rsa -C "495472831@qq.com"
  2. Generating public/private rsa key pair.
  3. Enter file in which to save the key (/c/Users/1yyg/.ssh/id_rsa):
  4. Created directory '/c/Users/1yyg/.ssh'.
  5. Enter passphrase (empty for no passphrase):
  6. Enter same passphrase again:
  7. Your identification has been saved in /c/Users/1yyg/.ssh/id_rsa.
  8. Your public key has been saved in /c/Users/1yyg/.ssh/id_rsa.pub.
  9. The key fingerprint is:
  10. SHA256:jDCsKX+gz2uoiLMYoBuphe7bK7KH4hTgsDkb3N6Gnks @qq.com

然后将id_rsa.pub的内容复制到github网站个人设置里面的new ssh key中。接着使用git remote add添加远程库,该库必须在github中存在

  1. F:\webim>git remote add webim https://github.com/zhu495472831/webim.git

接着在推送内容分支内容之前,使用git pull 先拉取最新的内容

  1. F:\webim>git pull webim master
  2. //如果遇到fatal: refusing to merge unrelated histories错误,可以添加 --allow-unrelated-histories选项解决
  3. F:\webim>git pull webim master --allow-unrelated-histories

然后就可以推送内容了

  1. F:\webim>git push webim master
  2. Counting objects: , done.
  3. Delta compression using up to threads.
  4. Compressing objects: % (/), done.
  5. Writing objects: % (/), 3.20 KiB | bytes/s, done.
  6. Total (delta ), reused (delta )
  7. To https://github.com/zhu495472831/webim.git
  8. ef0c6db..1e4b6fa master -> master

14.克隆仓库,使用git clone

  1. F:\zmx\gittest>git clone git@github.com:zhu495472831/webim.git
  2. Cloning into 'webim'...
  3. The authenticity of host 'github.com (192.30.253.112)' can't be establ
  4. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5
  5. Are you sure you want to continue connecting (yes/no)? yes
  6. Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the li
  7. n hosts.
  8. remote: Counting objects: , done.
  9. remote: Compressing objects: % (/), done.
  10. remote: Total (delta ), reused (delta ), pack-reused 0R
  11. % (/)
  12. Receiving objects: % (/), 12.45 KiB | bytes/s, done.
  13. Resolving deltas: % (/), done.

15.分支,分支有利于多人协同作业

创建分支git branch name或者git checkout -b name创建并切换,查看分支git branch,切换分支git checkout branchName,删除分支git branch -d

  1. F:\webim>git branch
  2. * master
  3.  
  4. F:\webim>git branch dev
  5.  
  6. F:\webim>git branch
  7. dev
  8. * master
  9.  
  10. F:\webim>git checkout dev
  11. Switched to branch 'dev'
  12.  
  13. F:\webim>git branch
  14. * dev
  15. master

删除分支

  1. F:\webim>git branch dev2
  2.  
  3. F:\webim>git branch
  4. * dev
  5. dev2
  6. master
  7.  
  8. F:\webim>git branch -d dev2
  9. Deleted branch dev2 (was 1e4b6fa).
  10.  
  11. F:\webim>git branch
  12. * dev
  13. master

在创建分支之后,在分支上对文件进行的操作,别的分支感知不到,可以使用merge合并分支,便可以

  1. F:\webim>git merge dev
  2. Updating 346ce30..d17e615
  3. Fast-forward
  4. hello.txt | ++-
  5. file changed, insertions(+), deletion(-)

在合并分支的时候,可以指定--no-ff参数,表示禁用fast forward模式,这样在合并分支之后,删除分支时,分支的信息就不会丢失

  1. F:\webim>git merge --no-ff -m "merge dev width no-ff" dev
  2. Merge made by the 'recursive' strategy.
  3. hello.txt | ++-
  4. file changed, insertions(+), deletion(-)

16.存储现场,当在一个分支上进行开发的时,来了一个优先级更高的bug需要修复,这时不想提交未完成的代码,就可以使用stash命令来保存现场

  1. F:\webim>git stash list
  2. stash@{}: On dev: hello.txt
  3.  
  4. F:\webim>git stash pop
  5. On branch dev
  6. Changes not staged for commit:
  7. (use "git add <file>..." to update what will be committed)
  8. (use "git checkout -- <file>..." to discard changes in working directory)
  9.  
  10. modified: hello.txt

git stash 保存     git stash save [message] 保存并备注       git stash list查看所有stash        git stash clear清空所有stash     git stash apply  stash@{n} 还原某个stash    git stash pop还原最近的一次stash

17 查看绑定的远程仓库信息

  1. F:\webim>git remote -v
  2. webim https://github.com/zhu495472831/webim.git (fetch)
  3. webim https://github.com/zhu495472831/webim.git (push)

18 创建和远程分支关联的分支

  1. F:\webim>git checkout -b dev webim/dev
  2. Branch dev set up to track remote branch dev from webim.
  3. Switched to a new branch 'dev'
  4. //也可以使用branch --track或--set-upstream-to关联
  5. F:\webim>git branch --set-upstream dev webim/dev
  6. The --set-upstream flag is deprecated and will be removed. Consider using --trac
  7. k or --set-upstream-to
  8. Branch dev set up to track remote branch dev from webim.

19 从远程库拉取内容

  1. F:\webim>git pull
  2. Already up-to-date.

20 打标签,使用tag命令

git tag:查看当前分支所有tag

git tag name:创建标签name,还可以指定commitid,例如git tag v1.0 63cbab46a467236a290fd4fb56439755f83ac49e,另外可以为标签加上描述,如git tag v1.0 -a -m "release 1.0"

git show tag_name:查看某个标签的详细信息

  1. F:\webim>git tag v1.
  2.  
  3. F:\webim>git tag
  4. v1.
  5.  
  6. F:\webim>git show v1.
  7. commit 63cbab46a467236a290fd4fb56439755f83ac49e
  8. Author: zhumuxian <@qq.com>
  9. Date: Fri Oct :: +
  10.  
  11. add nizhidema
  12.  
  13. diff --git a/hello.txt b/hello.txt
  14. index 8ef3fc0..09f6427
  15. --- a/hello.txt
  16. +++ b/hello.txt
  17. @@ -, +, @@
  18. hello world
  19. -this is a worla <A3><A1><A3><A1>
  20. \ No newline at end of file
  21. +this is a worla <A3><A1><A3><A1>
  22. +<C4><E3>ֵ<B5><C3><C2><F0>
  23. \ No newline at end of file

21 忽略文件,通过使用.gitignore文件配置,在git根目录新建一个名为.gitignore的文件,然后推送到github,内容如下所示

  1. #images
  2. *.jpg
  3. *.png
  4. *.gif
  5. *.swf
  6. *.html

22 配置别名,使用git config alias命令配置命令的别名

使用命令配置如下

  1. F:\webim>git config --global alias.st status
  2. F:\webim>git st
  3. On branch master
  4. Your branch is up-to-date with 'webim/master'.
  5. nothing to commit, working tree clean

 

Git-Notes的更多相关文章

  1. git notes的使用

    1. 获取notes git fetch origin refs/notes/*:refs/notes/* 2. 设置notes 2.1 git config --add core.notesRef ...

  2. git notes的用法

    1. notes翻译为中文评注 2. notes出现的作用 避免某一次commit的内容修改导致当前以及随后的commit发生变化,相当于在当前的commit后面追加一些信息,如: 某次commit的 ...

  3. git如何将旧commit的相关notes复制到新commit?

    答: git notes copy <old-commit> <new-commit>

  4. 常look的Git命令

    常用的Git命令   命令  简要说明 git add 添加至暂存区 git add–interactive 交互式添加 git apply   应用补丁 git am  应用邮件格式补丁 git a ...

  5. Git命令详解

    一个中文git手册:http://progit.org/book/zh/ 原文:http://blog.csdn.net/sunboy_2050/article/details/7529841 前面两 ...

  6. git操作的各种命令整理

    1.常用的Git命令   命令 简要说明 git add 添加至暂存区 git add–interactive 交互式添加 git apply 应用补丁 git am 应用邮件格式补丁 git ann ...

  7. git常用命令2

    一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...

  8. Git 命令速查表

    Git 命令速查表 1.常用的Git命令 命令 简要说明 git add 添加至暂存区 git add-interactive 交互式添加 git apply 应用补丁 git am 应用邮件格式补丁 ...

  9. Git 常用命令速查表(图文+表格)

    一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...

  10. 转 Git 常用命令大全

    一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态  git commit 提交  git branch -a 查看所有的分支 git branch ...

随机推荐

  1. mac 终端常用命令

    1.复制文件内容到剪贴板:pbcopy < ~/.ssh/id_rsa.pub. 2.ssh key 的生成,参考mac ssh key 的获取. 3.sourcetree 需要输入的密码,指的 ...

  2. 使用canal分析binlog(二) canal源码分析

    在能够跑通example后有几个疑问 1. canal的server端对于已经读取的binlog,client已经ack的position,是否持久化,保存在哪里 2. 即使不启动zookeeper, ...

  3. 关于The C compiler "arm-none-eabi-gcc" is not able to compile a simple test program. 的错误自省...

    在 GCC ARM Embedded https://launchpad.net/gcc-arm-embedded/ 上面下载了个arm-none-eabi-gcc 用cmake 编译时 #指定C交叉 ...

  4. javaweb初学记录

    原文 链接 http://blog.csdn.net/iojust/article/details/52429805 - ---热情依旧 - 环境搭建: - jdk环境配置 jdk下载: http:/ ...

  5. 关于C#的微信开发的入门记录一

    在之前老是看到一些微信开发的例子,但是作为初学者会有很多问题,之前我也找了很多帖子,但是最终也没能解决,现在刚好手里有一个项目,总结一下分享给准备做却动不了手的朋友们,本文只是以我个人的经验作为浅谈( ...

  6. zend studio8编辑器乱码问题解决办法

    截图一张:

  7. POJ 1163 The Triangle(简单动态规划)

    http://poj.org/problem?id=1163 The Triangle Time Limit: 1000MS   Memory Limit: 10000K Total Submissi ...

  8. ZXing二维码生成在Unity3D中出错,数组超出界限的解决办法

    错误截图: IndexOutOfRangeException: Array index is out of range.ZXing.Color32Renderer.Render (ZXing.Comm ...

  9. cxf3.1.4所需jar,大部分都可以从cxf3.1.4的lib包下找到

    asm-.jar commons-beanutils-.jar commons-collections-.jar commons-lang-2.6.jar cxf-core-.jar cxf-rt-b ...

  10. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...