第一部分:安装和配置
1.安装git
[root@x ~]# yum install -y git
2.初始化git
[root@x ~]# git config --global user.name "test" [root@x ~]# git config --global user.email "test@gmail.com"
这两条命令分别设置git账号和邮箱
3.关联远程git仓库,此处用github做演示
(1).首先需要在本地机器上生成一个SSH Key
[root@x ~]# ssh-keygen -t rsa -C "test@gmail.com"
生成成功后将会在你的主目录生成一个隐藏目录.ssh,里面包含两个文件id_rsa和id_rsa.pub。
其中id_rsa是私钥,建议不要泄露,id_rsa.pub是公钥,
[root@x ~]# cd ~/.ssh [root@x ~]# vi id_rsa.pub
(2).登录你的github账号,将id_rsa.pub中的内容全部添加到github的ssh key中,如下图:
其中title可以随便填写,Key就写刚才生成的
4.将远程仓库的代码克隆到本地
[root@x git]# git clone git@github.com:test/myfiles.git Initialized empty Git repository in /root/git/myfiles/.git/ remote: Counting objects: 14, done. remote: Compressing objects: 100% (9/9), done. remote: Total 14 (delta 0), reused 14 (delta 0), pack-reused 0 Unpacking objects: 100% (14/14), done.
注:设置代理(1080是本地shadowsocks代理软件的端口)
git config --global http.proxy 'socks5://127.0.0.1:1080'
第二部分:操作文件
1.新增和修改文件
首先在本地磁盘上添加文件,然后将文件添加到git的暂存区,再上传到远程仓库github,如下:
[root@x git]# vi readme.txt [root@x git]# git add readme.txt [root@x git]# git commit -m "add readme file" [root@x git]# git push origin master
注:如果git push时出现403错误,可先执行以下命令,再push (注意是ssh方式)
[root@x git]# git remote set-url origin git@github.com:test/myfiles.git
修改和新增一样,直接编辑文件后执行以上命令即可。
2.删除文件
首先在本地删除文件,然后删除git暂存区的文件,再提交删除
[root@x git]# rm readme.txt [root@x git]# git rm readme.txt [root@x git]# git commit -m "rm readme.txt" [root@x git]# git push origin master
3.撤销操作
这里有两种情况:
(1).修改了文件,但是没有执行 git commit 提交到暂存区,可以执行如下操作进行撤销:
[root@x git]# git checkout -- readme.txt #注意,-- 不能少,否则就是切换到另一个分支了
(2).如果修改了文件,并且已经执行了 git commit 提交到了git的缓存区,此时若想撤销可以执行 git reset HEAD,再 git checkout -- .
[root@x git]# git reset HEAD readme.txt
[root@x git]# git checkout -- readme.txt
(3).查看状态
[root@x myfiles]# git status # On branch master # Changed but not updated: # (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")
上面的结果表示readme文件被修改过了,但是还没有提交到暂存库中。
4.版本回退
如果文件文件修改完后已经 push 提交到了远程仓库,此时若要回退到以前的版本
(1).回退到上一个版本
[root@x git]# git reset --hard HEAD^ #回退到上面第二个版本用HEAD^^...,第一百个用HEAD~100
(2).回退到指定版本号的版本
[root@x git]# git reset --hard eab23e528f99cb53606554984ea1308005f8e35a #eab23e528f99cb53606554984ea1308005f8e35a是版本号,可以前面几位,如eab23e528
(3).查看历史版本
[root@x git]# git log
如果只想看简化结果,可以加 --pretty-oneline 参数
[root@x git]# git log --pretty-oneline
5.查看当前文件和暂存库中文件的区别
[root@x myfiles]# git diff HEAD -- readme.txt
diff --git a/readme.txt b/readme.txt
index 6102ad0..2c8b3b9 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1 @@
-It's my files...
+It's my files
如果文件相同则不会有任何回显。
第三部分:分支管理
第四部分:标签管理
第五部分:自定义git