git基本命令

文章目录

  • git基本命令
            • 1. **git创建版本仓库**
            • 2. **把文件添加到版本库**
            • 3. **把文件提交到仓库**
            • 4. **查看文件状态**
            • 5. **查看文件差异**
            • 6. **查看日志**
            • 7. **版本回退**
            • 8. **版本回退错误后反悔操作**
            • 9. **放弃工作区的修改**
            • 10. **放弃暂存区的修改**
            • 11. **将本地仓库推送到远程仓库**
            • 12. **把本地库的所有内容推送到远程库上**
            • 13. **直接克隆已存在的远程库**
            • 14. **拉取远程仓库的东西**

git基本命令

1. git创建版本仓库
# 建议在一个空文件夹里创建空的版本库
$ git init
2. 把文件添加到版本库
# 1.编写一个readme.txt文件
vim readme.txt

# 2.添加单个文件
git add readme.txt  

# 3.添加多个文件
git add readme1.txt readme2.txt

# 4.添加当前文件夹下所有文件
git add .
3. 把文件提交到仓库
# 把文件提交到仓库
git commit -m "本次文件提交说明"
4. 查看文件状态

我们对文件做了修改后,可以查看修改状态

# 查看文件修改状态
git status 
5. 查看文件差异

我们对文件做了修改后,可以查看修改前后差异

git数据流向

工作区>>暂存区>>版本库

# 查看文件修改差异-比较的是工作区文件和暂存区文件(上次git add 后的内容)的区别
git diff test1.txt 

# 查看文件修改差异-比较的是暂存区文件和版本库(上次git commit 后的内容)的区别
git diff --cached test1.txt

# 查看文件修改差异-比较的是工作区文件和版本库(上次git commit 后的内容)的区别
git diff HEAD test1.txt
6. 查看日志
# git log命令显示从最近到最远的提交日志
git log
7. 版本回退
# 回退到上一个版本
git reset --hard HEAD^

# 回退到历史某个版本(版本号不一定要全写,只写前面部分保证唯一也可)
git reset --hard ce98574451f123eb0cc1de74e1812ca5e564f98f
8. 版本回退错误后反悔操作

回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?

# git reflog查看之前的每一次命令
git reflog

-----------------------------------------
ce98574 HEAD@{1}: reset: moving to ce98574451f123eb0cc1de74e1812ca5e564f98f
2cdd95a HEAD@{2}: reset: moving to HEAD^
6e4d39d HEAD@{3}: commit: 提交readme.txt文件的第二次修改
2cdd95a HEAD@{4}: commit: 提交readme.txt
ca05789 HEAD@{5}: commit: test1做了第二次修改“
b2aaf92 HEAD@{6}: commit: 提交test2修改
ce98574 HEAD@{7}: commit: 提交test1修改
595c552 HEAD@{8}: commit: 添加了test5文件
bdcc4f4 HEAD@{9}: commit: 新增test3文件
a9e7f16 HEAD@{10}: commit: 新增test4.txt
46ff1da HEAD@{11}: commit: 新增test1和test2两个文件
e21969b HEAD@{12}: commit (initial): 新增了一个readme.txt文件,作为解释性文件
-----------------------------------------

# 回到版本【提交readme.txt文件的第二次修改】
git reset --hard 6e4d39d
9. 放弃工作区的修改

命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。

# 放弃工作区的修改
git checkout -- test1.txt
10. 放弃暂存区的修改
# 把暂存区的修改撤销掉(unstage),重新放回工作区
git reset HEAD readme.txt
11. 将本地仓库推送到远程仓库
# 添加远程库(origin是远程库名,可修改)
git remote add origin [email protected]:JerryITGO/testgit.git
12. 把本地库的所有内容推送到远程库上

由于远程库是空的,我们第一次推送[master]分支时,加上了[-u]参数,Git不但会把本地的[master]分支内容推送的远程新的[master]分支,还会把本地的[master]分支和远程的[master]分支关联起来,在以后的推送或者拉取时就可以简化命令。

# 第一次推送
git push -u origin master

# 后续 推送
git push origin master
13. 直接克隆已存在的远程库

当远程仓库已经存在,我们可以直接克隆这个远程仓库

git clone [email protected]:JerryITGO/learn_python3.git

GitHub给出的地址不止一个,还可以用https://github.com/JerryITGO/learn_python3.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。

使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。

14. 拉取远程仓库的东西
# 简化版命令
git pull

# 全命令
git pull origin master

你可能感兴趣的:(git,其他)