git安装与命令解读
参考:
廖雪峰git.
網上教程.
git安装----windows
寫在前面:最好每操作一步命令都git status查看一下狀態。
1,git官网安装,一路默认安装 git bash能打开窗口说明安装成功
创建版本库并提交代码到本地版本库
1,mkdir 目录名 (创建目录/也可以不创建,注意所在路径不能包含中文)
2,cd 目录名 (切换到目录下,将需要管理的文件都放到目录下)
3,pwd (查看当前路径)
4,git int (将该目录变成git可以管理的代码库)
5,添加文件到本地仓库:
1,git add 文件名 / . (添加目录下的特定文件或者添加目录下的所有文件)
2,git commit -m ‘添加文件的说明’ ----commit命令后文件就被保存下来且不会丢失
【两步必须都写,因为add命令可以多次重复,一次可以添加多个文件夹】
6,git status (查看状态,会告知某个文件是否被修改)
7,git diff 文件名 /git diff HEAD 文件名(查看某个文件的具体代码,查看具体哪里修改过)
8,使用touch 文件.txt,新建txt文件,再git status 查看状态,会提示有未管理的新文件:(vim在终端修改文件,:wq文件名表示保存并退出)
Untracked files:
(use “git add …” to include in what will be committed)
hello.txt
9,使用add命令添加到仓库:
Changes to be committed:
(use “git rm --cached …” to unstage)
new file: hello.txt
10,如果仓库中管理的文件被修改了,使用git status查看状态:
Changes to be committed: -----提示文件hello.txt已经被修改 准备保存状态
(use “git rm --cached …” to unstage) —rm命令表示从仓库中清除该文件
Changes not staged for commit: —表示未保存状态
1,(use “git add …” to update what will be committed) ----提示使用git add可以添加修改内容进来
2,(use “git restore …” to discard changes in working directory) -----提示使用 git restore表示撤銷文件在工作區的全部修改
或者git checkout – 文件名 讓文件回到最近一次add或commit時的狀態
提交的最后一步:git push
git创建新分支并提交代码到远程仓库
在已经创建仓库和私钥并与本地仓库关联的前提下:
git checkout -b 分支名 ======创建分支并切换到该分支
git branch -a ======查看所有分支
git add .
git commit -m ‘提交说明’
git push --set-upstream origin 分支名 =======如果不确定,直接git push 终端会给出完整的命令提示
代码版本回退
1,git log (显示提交日志,能看到三次,最近的一次,上一次和最早的一次,输出信息会比较完整)
2,git log --pretty=oneline (输出信息比较简略)
3,回退版本需要先知道当前版本,head表示当前版本
==git reset --hard head~ (表示网上回退一个版本)
==git reset --hard head~100 (表示网上回退100个版本)
==回到过去后很难再回来,除非当前窗口未关闭,就可以往上
划拉窗口找到版本号的commit id(只需要前几位就好)
git reset --hard commit-id
==git reflog (该命令用来记录用户的每一次命令。如果用户关闭窗口后还想恢复到最新版本,可以通过该命令,找到想恢复的版本的commit-id就可以恢复了。
工作区和暂存区
*工作區就是在電腦裏能看到的目錄
*版本庫.git 包含stage/index 暫存區,master(git自動創建的唯一分支),以及指向master的指針HEAD。
- git add 就是將文件添加到暫存區;
- git commit就是將暫存區所有内容提交到當前分支master。
- Git跟踪并管理的是修改,而非文件。所以修改后的文件都需要先git add放入暫存區,再提交。
撤銷修改
假如文件修改了,需要撤銷修改:
1,文件修改後還沒有add到暫存區:【將工作區的修改全部撤銷,回退到版本庫最近的狀態】
git checkout - - filename
2,文件已經add到暫存區后,又修改了:【撤銷將回退到暫存區最近的狀態】
git checkout - - filename
3,假如文件修改后,add到了暫存區,我希望把暫存區的修改撤銷,並回退到工作區----即add之前的狀態:
git reset HEAD filename - - -把暂存区的修改回退到工作区
4,假如修改add並提交commit了,可以通過版本回退,回退到上一個版本來撤銷修改。----前提是沒有把本地版本庫推送到遠程。
【git checkout filename 表示切換到另一個分支】
【儅使用add命令表示最新的版本】
刪除文件
刪除工作區的文件:
- 直接在文件管理器刪除 / rm filename
使用git status,git就會提示工作區和版本庫不一致。
假如版本庫中的文件也要刪除:
- git rm filename 刪除
- git commit -m ‘提交’ 【這兩步都必須做才能成功刪除】
假如刪錯了,工作區的文件需要恢復:
- git checkout – filename
【git checkout其实是用版本库里的版本替换工作区的版本。】
【命令git rm用于删除一个文件。如果一个文件已经commit,那么永远不用担心误删,可以版本回退到最新的版本。但是会丢失最近一次提交后你修改的内容。】
使用GITHUB創建遠程倉庫並關連本地
1,創建SSH KEY。在用户主目录下,看看有没有.ssh目录,再看該目录下有没有id_rsa和id_rsa.pub,如果有,跳下一步。
如果没有,创建SSH Key:ssh-keygen -t rsa -C "1592713356@qq.com"
一路回車
2,如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa私鑰和id_rsa.pub公鑰
在GitHub,打开“Account settings”,“SSH Keys”頁面,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。
3,先在github創建一個倉庫, create a new repository
,自定義倉庫名,其他默認設置,確認創建。
4,創建成功后git會提示:
create a new repository on the command line
从这个仓库克隆出新的仓库;
push an existing repository from the command line
把一个已有的本地仓库与之关联,然后把本地仓库的内容推送
到GitHub仓库。
5,在本地的倉庫目錄下git bash,將本地倉庫與遠程倉庫關連。關連后,遠程倉庫的名字默認就叫origin。
git remote add origin git@github.com:github賬戶名/github倉庫名.git
6,將本地倉庫的内容第一次推送到遠程倉庫
git push -u origin master
git push===>把本地倉庫的分支master推送到远程;
-u===>第一次推送時,加上-u,git會把本地master和遠程master关联起来,
以后的推送或者拉取时可以简化命令。
之後本地的提交,只需要git push origin master
,直接提交最新修改
7,SSH警告!!当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
这是因为Git使用SSH连接,SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes
回车即可。
【雖然SVN也可以提交代碼,可以版本回退,可以撤銷修改,但是在沒網的時候無法工作。】
使用github從遠程倉庫克隆
- 在github創建倉庫名為test。
勾选Initialize this repository with a README,会自动创建README.md文件
- 使用命令克隆遠程倉庫到本地:(注意找一個沒有中文的路徑git bash here)
git clone git@github.com:github賬戶名/test(遠程倉庫名).git
git clone https://github.com/github賬戶名/test(遠程倉庫名).git
- cd test 切换到目录下
- ls 详细查看目录下文件,可以看到readme.md
注:
~~【你也许还注意到,GitHub给出的地址不止一个,还可以用https://github.com/michaelliao/gitskills.git这样的地址。
实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。
使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。
通过ssh支持的原生git协议速度最快。#】~~
克隆码云项目到本地
1.在本地新建一个文件夹,git bash
2.切换到文件夹对应路径
- git config --global user.name ‘’
- git config --global user.email ‘’
- git init
- git clone 复制的项目地址
- 完成
创建一个自定义列表
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.