git 常用操作汇总

参考:Git 教程

命令行操作

初始化本地git仓库(git init)

在git-learning中执行 git init ,即可以将git-learning 变成git可以管理的版本库

mkdir git-learning
cd git-learning

git init

向本地git仓库添加文件(git add;git commit)

两步骤:1.add;2.comit

# 在 git-learning中添加readme.txt 文件
type nul>readme.txt

#reademe.txt 内容如下

#git is a version control system
#git is free software

git add readme.txt
git commit -m "wrote a readme file"

查看git仓库状态(git status)

git status

查看修改内容(git diff)

git diff <fileName>

修改文件并提交(git add;git commit)

和向仓库添加新文件一样的2步骤

#修改readme的内容为
#git is a distributed version control system
#git is free software

git add readme.txt
git commit -m "modified readme"

查看历史版本(git log)

git log

#美化log输出
git log --pretty=oneline

回退仓库版本(git reset HEAD <file>...)

git 用 HEAD 代表当前版本

HEAD^ 表示上一版本

HEAD^^表示上两个版本

HEAD~100 表示上100个版本

回退到指定版本:git reset --hard <具体版本的id>

查看历史版本id :git reflog

#回退到上一版本
git reset --hard HEAD^
#指定到具体版本
git reset --hard <具体版本id>

显示所有历史操作(git reflog)

git reflog

工作区 VS 暂存区

工作去有一个隐藏的.git目录,这个不算工作区,而是git的版本库。git 的版本库里存了很多东西,其中最重要的就是称为Stage的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的一个指针HEAD。

git add 命令实际上就是把要提交的所有修改存放到暂存区(Stage),然后,执行git commit 就可以一次性把暂存区的所有修改提交到分支。

管理修改

git add 会将修改提价到暂存区,假设有2次修改:第1次修改后git add 修改到暂存区;然后第2次修改,修改后(不git add)直接gti commit ,则最终的版本库只有第一次的修改生效。(后续可以通过追加git add,然后再git commit 使第二次修改在版本库中生效。通过 git reflog 可以看到两次修改对应的版本不同)

对比工作区和版本库中的代码

git diff HEAD -- readme.txt

撤销修改(git checkout -- file)

git checkout -- readme.txt

若修改还在工作区,没添加到暂存区,则撤销操作直接丢失工作区中修改内容,结果是和版本库中内容一致。

若修改已经添加到暂存区,而后有进行了修改,撤销操作会让回到添加到暂存区后的状态。

命令中 -- 很重要,若省略就“变成切换到另一个分支”命令。

撤销暂存区修改

以下命令会将暂存区的修改回退到工作区。因而要想彻底撤销修改还需git checkout.

git reset HEAD readme.txt

撤销版本库修改

回退版本即可。若已提交到远程,则操作记录会永远存在(除非删掉远程仓库)。

删除文件

若直接从系统删除文件,则仅仅只是删除了工作区的文件(版本库汇总还有该文件),通过git checkout -- filename 即可从版本库中将文件还原。

要想彻底删掉某文件(工作区和版本库都删除):1.手动删除,然git add/rm file;git commit 。2.git rm ;git commit。

远程仓库

non-fast-forward

https://www.cnblogs.com/wuxun1997/p/6952197.html

results matching ""

    No results matching ""