一. 理解
- Workspace:工作区
- Index / Stage:暂存区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
二. 新建Repository
- 创建本地仓库
git init #git 初始化
git add . #添加所有文件到暂存区
git commit -m "content" #添加备注提交本地仓库
git remote add origin http://url.git # 添加远程仓库路径
git push -u origin master #push 代码到远程仓库
git push remote [remote][branch] #上面两行代码的合并
2.复制远程仓库
git clone [url]
三. 配置
git config --list #显示所有Git配置
git config --global user.name "username"
git config --global user.email "email address"
四. 需要记住的
git add .
git commit -m "content"
git branch #列出所有本地分支
git branch -r #列出所有远程分支
git branch -a #列出所有本地和远程分支
git branch [分支名字] #新建分支
git checkout [分支名字] #切换到指定分支
git merge [分支名字] #合并指定分支到当前分支
git status #显示有变更的文件
git log #显示当前分支的版本历史
git diff #显示暂存区和工作区的代码差异
git checkout [file] #恢复暂存区的指定文件到工作区
git checkout . #恢复暂存区的所有文件到工作区
git reset --hard [commit] #让工作区回到上次commit的状态,同时重置暂存区和工作区,回滚到某个版本,该版本之后的所有代码丢失,慎用!
**这是错误的理解**
git revert #未完
20191107
五.版本回退
- git status 命令查看仓库当前的状态,若无修改则显示working tree clean.否则显示哪些文件修改了但是没有准备提交的修改。
- git diff [filename]从git status中看出[filename]已修改但未提交,通过diff命令可以看到具体修改的内容,重要:比较的是工作区和暂存区的文件;git diff HEAD -- [filename]比较工作区和本地版本库的最新版本
-
git log 显示从最近到最远的提交日志。
git log --pretty = oneline 简洁显示,开头的id为提交的唯一标识 -
git reset --hard [commitid] 从git log 可以看到每次提及的commit id ,通过git reset可以将版本还原到指定版本。
在当前窗口未关闭的情况下,再次使用该命令将版本还原到最新的版本,只需要有commit id commit id 可只写前几位 - git reflog 当还原到历史某一个版本时,想恢复到最新版本时, 可以使用该命令获取所有历史的操作,则可以找到最新版本的commit id并还原。
- 工作区(Working Directory) 即为电脑中项目所在文件夹就是一个工作区
-
版本库(Repository) 工作区有个隐藏的目录.git, 这个不算工作区而是Git的版本库
Git版本库中存了很多东西,其中最重要的为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及只想master的一个指针叫HEAD
git add 将文件提交到暂存区
git commit 提交更改,生成commit id 将暂存区的内容提交到本地仓库
git push 将本地仓库的内容推送到远程库中
-
git checkout --filename 将file文件在工作区的修改全部撤销;两种情况:1).文件自修改后还没放到暂存区(未add),现在撤销就是回到版和版本库一样的状态;2).文件提交添加(add)到暂存区,又作了修改,现在撤销就回到添加到暂存区后的状态;
总之,就是让文件回到最一次的git commit 或git add 的状态
此处filename 不能缺,否则就是切换分支的命令 -
git reset HEAD <file> 可以把暂存区的修改撤销掉(unstage),重新放回工作区
网友评论