1、安装git 执行
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
2、创建git库,最好是在空目录中
3、在空目录中执行git init 命令,即在该目录初始化了一个git仓库,使用 ls -ah 可以查看到目录下隐藏的.git文件
4、在git仓库中操作文件,如新增一个文件1.txt ,文件中输入内容, 此时在git目录中执行 git statue 命令,即可查看该仓库下文件的状态(已更新? 修改待提交? 新增待提交?)
5、git 上传至仓库,一共分两步, 1是add 2是commid git add 1.txt git commid -m “此次提交的内容介绍,方便以后自己或其他人查看”
git所在目录属于工作区, 执行完add的文件会放到版本库的暂存区, git commit 之后文件才会被提交到分支(默认master)
用git diff HEAD -- readme.txt
命令可以查看工作区和版本库里面最新版本的区别:
git add 后面可以跟多个文件;
6、查看完仓库中文件的状态后,发现有带待提交的文件时, 如果忘记了自己做过什么,可以查看有哪些代替交的内容 使用 git diffrent
wangjianqingdeMacBook-Air:LearnDemo wangjianqing$ git diff
diff --git a/LearnDemo/readMe.txt b/LearnDemo/readMe.txt
index 15ba924..00014e9 100644
--- a/LearnDemo/readMe.txt
+++ b/LearnDemo/readMe.txt
@@ -1,5 +1,4 @@
today
is
-not
a
beautifulday
7、学会了使用git提交新建的代码,提交修改的内容,那么提交的次数过多后,如何回滚,回滚时如何选择版本
使用git log 查看提交记录
wangjianqingdeMacBook-Air:LearnDemo wangjianqing$ git log
commit 5897448c4d24009e043a9129168c2d65c990431e (HEAD -> master)
Author: wangjianqing <1026164853@qq.com>
Date: Tue Jul 23 18:51:22 2019 +0800
second upload git
commit 910b43d7de6ff44c1f5d709baca056a5d32b6404
Author: wangjianqing <1026164853@qq.com>
Date: Tue Jul 23 17:37:36 2019 +0800
first upload git
如果查看时输出的内容过多,可以考虑后面追加 --pretty=oneline 如下:
wangjianqingdeMacBook-Air:LearnDemo wangjianqing$ git log --pretty=oneline
5897448c4d24009e043a9129168c2d65c990431e (HEAD -> master) second upload git
910b43d7de6ff44c1f5d709baca056a5d32b6404 first upload git
commid id 是git每生成一个版本就会自动生成一条时间线; git的当前版本用 HEAD表示;
如果要回滚到之前的某个版本. 比如当前版本之前的一个版本 那就是 git HEAD^; 再次查看当前版本时就会展示当前版HEAD 为first upload git
910b43d7de6ff44c1f5d709baca056a5d32b6404 first upload git
wangjianqingdeMacBook-Air:LearnDemo wangjianqing$ git reset --hard HEAD^
HEAD is now at 910b43d first upload git
wangjianqingdeMacBook-Air:LearnDemo wangjianqing$ git log --pretty=oneline
910b43d7de6ff44c1f5d709baca056a5d32b6404 (HEAD -> master) first upload git
wangjianqingdeMacBook-Air:LearnDemo wangjianqing$
如果要再次回到回滚之前的版本; 可以选择两种方法: 1是找到回滚之前的commit id 使用git reset --hard id
wangjianqingdeMacBook-Air:LearnDemo wangjianqing$ git reset --hard 5897448c4d24009e043a9129168c2d65c990431e
HEAD is now at 5897448 second upload git
wangjianqingdeMacBook-Air:LearnDemo wangjianqing$ git log --pretty=oneline
5897448c4d24009e043a9129168c2d65c990431e (HEAD -> master) second upload git
910b43d7de6ff44c1f5d709baca056a5d32b6404 first upload git
如果找不到回滚之前的commit id 值的话 ,可以先使用git reflog查看命令操作历史,然后再滚回来
wangjianqingdeMacBook-Air:LearnDemo wangjianqing$ git reflog
5897448 (HEAD -> master) HEAD@{0}: reset: moving to 5897448c4d24009e043a9129168c2d65c990431e
910b43d HEAD@{1}: reset: moving to HEAD^
5897448 (HEAD -> master) HEAD@{2}: commit: second upload git
910b43d HEAD@{3}: commit (initial): first upload git
8、$ git checkout -- readme.txt 意思是把工作区的修改撤销掉 注意:如果不加-- git checkout file 会将版本切换成心得分支
git reset HEAD <file> 意思是把暂存区的修改撤销掉
一种是readme.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。可以先撤销暂存区的修改 再撤销工作区的修改,这样就干净了
总之,就是让这个文件回到最近一次git commit
或git add
时的状态。
9、要删除某个文件 如果已经提交到仓库,首先再本地删除,然后在仓库中国删除
$ rm test.txt 删除本地的文件
git rm
删掉,并且git commit 再把仓库中的文件删除
$ git checkout -- test.txt 如果发现删除错了 可以从仓库中在回复过来
10、在用户主目录中,打开.ssh隐藏文件, 如果没有这个文件 需要自己创建一个:$ ssh-keygen -t rsa -C "youremail@example.com"
登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容:
如果有多台电脑需要提交到仓库,那么就需要把多个对应的key粘贴到github, 方便它识别是自己人.
wangjianqingdeMacBook-Air:~ wangjianqing$ cd .ssh
wangjianqingdeMacBook-Air:.ssh wangjianqing$ ls
id_rsa known_hosts ls -l.pub
id_rsa.pub ls -l reports