初始化Git仓库 用 git init命令,将文件添加进Git仓库:第一步,使用 git add 文件 (可反复使用添加多个文件)。第二步, 用git commit来完成。
============================================================================================================
1.要随时掌握工作区的状态,使用git status
命令。如果git status
告诉你有文件被修改过,用git diff
可以查看修改内容。
============================================================================================================
2.HEAD
指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
。
3.git rest --hard HEAD^退回到上一个版本 有几个 ^ 就是退几个版本。
4.退回之前前,用git log
可以查看提交历史,以便确定要回退到哪个版本。
5.要倒回之前的版本,用git reflog
查看命令历史,以便确定要回到未来的哪个版本。
6.当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。
7.当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file
,就回到了场景1,第二步按场景1操作。
8. 用 rm 文件 命令可以讲文件删除, 使用 git rm 文件 命令将版本区中的文件删除。还有一种情况是如果误删了工作区的文件,可以用git checkout -- 文件 命令来恢复文件。
=============================================================================================================
工作区是指文件所存放的位置
6.使用git add命令可以讲文件添加进stage也就是暂存区
git会为我们自动创建一个master的分支以及一个指向master的指针HEAD。
7.当使用git commit时,就是把暂存区的所有内容添加到文件。
8.git diff HEAD -- 文件 查看工作区和版本区的区别
==============================================================================================================
远程库的上传
用git remote add origin https://github.com/用户名/repo-name.git来关联
用git push -u origin master来进行第一次推送master分支
之后每次就可以使用git push origin master来推送最新的修改了
下载
git clone git@github.com:用户名/文件夹.git 或者 git clone https://github.com/用户名/文件夹.git 存储位置
查看分支:git branch
创建并转到分支:git checkout -b 名字
创建分支:git branch 名字
切换分支:git checkout 名字
创建+切换分支:git checkout -b
名字
合并某分支到当前分支:git merge 名字
或者使用 git merge --no-ff -m "xxx" 名字 来避免两个分支同时修改所造成的冲突
删除分支:git branch -d
名字
保存分支上的工作用git stash,用git stash pop来恢复保存的东西
==============================================================================
多人工作的推送
查看远程库信息,使用git remote -v
;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin
,如果推送失败,先用branch名字
git pull
抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b
,本地和远程分支的名称最好一致;
origin/branch名字
branch名字
建立本地分支和远程分支的关联,使用git branch --set-upstream
;
origin/branch名字
branch名字
从远程抓取分支,使用
git pull
,如果有冲突,要先处理冲突。