Git使用
三个区域 工作区域 暂存区域 本地仓库
git如果不能使用tab键 确定扩展的tab补全命令是否安装 默认支持tab
yum -qa bash-completion-extras.noarch
1.关闭selinux
getenforce
setenforce 0
sed -i '7c SELINUX=disabled' /etc/selinux/config
2.关闭firewalld防火墙 centos6防火墙服务 iptables
systemctl stop firewalld
systemctl disable firewalld
3.查看当前的git版本
[root@oldboyedu ~]# git --version
git version 1.8.3.1
4.查看当前的配置
[root@oldboyedu ~]# git config --list
user.name=lizhenya
user.email=lizhenya@qq.com
color.ui=true
[root@oldboyedu ~]# cat .gitconfig
[user]
name = lizhenya
email = lizhenya@qq.com
[color]
ui = true
5.初始化目录为git仓库
[root@oldboyedu ~]# mkdir git_data
[root@oldboyedu ~]# cd git_data/
[root@oldboyedu git_data]# git init
6.git基础命令
1. git init # 初始化仓库
2. git status # 查看当前仓库的状态 保持目前仓库是干净的(没有新文件 没有修改的状态)
3. git add oldboy.txt # 把文件提交到暂存区
4. git rm --cached oldboy.txt # 删除暂存区的内容
5. git add . # 提交工作目录所有的文件到暂存区
6. git rm # 删除工作目录的文件
7. git checkout -- file # 让暂存区的内容覆盖工作的目录的文件
8. git rm -f a.txt # 同时删除工作区和暂存区
9. git reset HEAD 文件 # 撤销文件
10. git log # 查看当前版本下所有的历史提交
11. git log --oneline # 一条命令显示提交的记录
12. git log --oneline --decorate # 查看当前的HEAD指针 默认指向最后的一次操作
13. git reset --hard 7c1047f # 恢复到历史的版本
14. git reflog # 查看所有的历史提交记录
15. git branch # 查看当前的分支
16. git branch dev # 创建dev分支
17. git checkout dev # 切换到dev分支
18. git merge dev # 把dev分支合并到主分支 # 合并后把dev分支删除 写新功能在创建分支
19. git branch -d dev # 删除dev分支
20. git checkout -b dev # 创建并切换到dev分支
21. git tag -a v1.2 -m "v1.2" # 给当前的版本打tag
22. git tag # 查看当前git所有的tag
23. git show v1.2 # 查看v1.2的详细信息
24. git tag -a v1.1 a9e24ab -m "v1.1" # 指定某个版本打tag
25. git reset --hard v1.2 # 利用tag标签进行版本回退
26. git tag -d v1.1 # 删除标签
27. git remote # 查看远程仓库
28. git remote -v # 查看远程仓库详细信息
29. ssh-keygen # 生成秘钥对
30. ssh root@10.0.0.201 'ip add' # 远程执行命令
31. ssh-copy-id -i .ssh/id_rsa.pub 10.0.0.201 # 发送公钥到对端服务器
家目录下的 .ssh/authorized_keys # 公钥存放文件地址
32. git remote rename origin old-origin # 修改远程仓库的名称
33. git remote remove origin # 删除远程仓库
7.git删除文件
(只要对管理的文件进行操作后 必须得git add git commit 提交 才生效)
[root@oldboyedu git_data]# git rm oldboy.txt
rm 'oldboy.txt'
[root@oldboyedu git_data]# git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# deleted: oldboy.txt
#
删除后进行提交到暂存区和本地仓库
[root@oldboyedu git_data]# git add .
[root@oldboyedu git_data]# git commit -m "delete newfile oldboy.txt"
[master c2c524e] delete newfile oldboy.txt
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 oldboy.txt
[root@oldboyedu git_data]# git checkout -- a.txt
[root@oldboyedu git_data]# ll
total 0
-rw-r--r-- 1 root root 0 Nov 13 11:50 a.txt
8.改名
[root@oldboyedu git_data]# git mv aa.txt aa.bak
[root@oldboyedu git_data]# git add .
[root@oldboyedu git_data]# git commit -m "modify name"
9.查看文件 比对文件内容
git diff 比对工作区和暂存区的内容
git diff --cached # 比对暂存区和本地仓库的内容