概述
git学习笔记
文章目录
- git学习笔记
- 前言
- 一、初次安装git所需操作
- 二、使用介绍
- 1.创建仓库
- 2. 历史版本
- 3. 工作区、版本区和远程仓库
- 4. Git 分支操作
- 产生冲突
- 解决冲突
- 5. 远程仓库操作
- push操作
- pull操作
- 6. 在项目提交时 Git 应当执行的操作流程
- 7. Git界面年粘贴/复制快捷键
- 8. Git忽略文件操作
- 9. 常用的Linux命令
前言
集中式版本控制系统可使管理员轻松掌控每个开发者的权限,但在工作时显而易见的缺点是中央服务器的单点故障。 而分布式的版本控制系统在服务器断网的情况下也可以进行开发,每个客户端保存的也都是整个完整的项目。一、初次安装git所需操作
git官网点击跳转
下载完成后,随便在某个文件下右键如果有Git Bash Here就表示安装成功。
二、使用介绍
1.创建仓库
Git 首次安装必须设置一下用户签名,否则无法提交代码。选择一个合适的地方创建一个空文件夹,并在此文件夹中右键点击Git Bash Here打开git命令窗口在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
global表示全局,这台机器所有的Git仓库都将使用这个配置。允许单个仓库使用其他的名字和邮箱。
通过git init命令把这个目录变成Git可以管理的仓库:
$ git init
在当前目录中会多一个 .git 的目录,这个目录是Git来跟踪管理版本库的,如果改乱了,就可能把Git仓库给破坏了。其中,Git是无法追踪图片、视频等二进制文件的改动的。
通过 git add 命令将文件添加到版本区(暂存区):
$ git add . //此命令是将该 工作区中 文件夹全部提交到暂存区
$ git add hello.text //此命令是将该 工作区中 hello.text 提交到暂存区
通过 git commit 命令将文件添加到版本区(仓库区):
$ git commit -m "提交说明" //此命令是将该文件夹全部提交到版本区
在 -m 后面输入的是本次提交的说明,方便自己以后从历史记录里找到改动记录
注意:
git add < file > ,可以反复多次使用,添加多个文件夹;
git commit -m “提交说明” ,可以一次提交很多文件。
通过 git status 命令可以将该 工作区中 当前状态展现出来:
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: readme.txt
no changes added to commit (use "git add" and/or "git commit -a")
此内容表示 工作区中 版本有所改动,但 Git 未对该文件进行跟踪。需要通过 $ git commit 将文件添加到 仓库区 中进行跟踪。
通过 git diff 命令可以将该 工作区中 当前具体修改内容告诉我们:
$ git diff
2. 历史版本
通过 git reflog 命令可以查看历史版本信息:
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git reflog
087a1a7 (HEAD -> master) HEAD@{0}: commit: my third commit
ca8ded6 HEAD@{1}: commit: my second commit
86366fa HEAD@{2}: commit (initial): my first commit
其中,HEAD指针 指向为当前版本分支 master 为默认主分支。087a1a7、ca8ded6、86366fa分别为三次改动版本的版本号。
通过 git log 命令可以查看版本详细信息:
$ git log
通过 git reset --hard 版本号 命令可以进行版本穿梭:
$ git reset --hard 版本号
其原理是: 改变 Git 内部 HEAD指针 的指向,而你让 HEAD 指向哪个版本号,便把当前版本定位在哪且工作区中的文件也会更新为此版本内容。
┌────┐
│HEAD│
└────┘
│
└──> ○ append GPL
│
○ add distributed
│
○ wrote a readme file
改为指向 add distributed:
┌────┐
│HEAD│
└────┘
│
│ ○ append GPL
│ │
└──> ○ add distributed
│
○ wrote a readme file
如若想退回到某个版本,可以通过命令 git reflog 查看命令历史,以便确定要回到未来的哪个版本(获取 该版本的 版本号 )。确定所退回版本之后再通过 git reset --hard 版本号 命令便可重返未来。
通过 git checkout – file 命令可以用来撤销对工作区中文件的修改:
$ git checkout -- file
在工作区,你修改了一个东西,但你想撤销修改,便可以通过该命令撤销修改就回到和版本库一模一样的状态,即用版本库里的版本替换工作区的版本,无论工作区是修改还是删除都可以“一键还原”。
3. 工作区、版本区和远程仓库
工作区就是你在电脑里能看到的目录,比如文件夹中的 Hello.text 文件;版本区 为工作区中一个隐藏目录 .git ,这个不算工作区而是 Git 的 版本区。
在 版本区 中拥有两个区即:暂存区与仓库区,只有提交到仓库区的文件才会被 Git 跟踪记录。
本地仓库是对于远程仓库而言的。
本地仓库 = 工作区 + 版本区
工作区即磁盘上的文件集合。
版本区(版本库)即.git文件
版本库 = 暂存区(stage) + 分支(master) + 指针Head
前面讲了我们文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
4. Git 分支操作
使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。同时并行推进多个功能开发,可以提高开发效率。同时,各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
通过 git branch -v 命令可以查看所有分支:
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git branch -v
* master 087a1a7 my third commit (*代表当前所在的分区)
通过 git branch 分支名 命令可以创建分支:
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git branch hot-fix
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git branch -v
hot-fix 087a1a7 my third commit (刚创建的新的分支,并将主分支 master的内容复制了一份)
* master 087a1a7 my third commit
分支之间的操作互不影响。
通过 git checkout 分支名 命令可以切换分支:
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git checkout hot-fix
Switched to branch 'hot-fix'
//发现当先分支已由 master 改为 hot-fix
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (hot-fix)
$
通过 git merge 分支名 命令可以合并分支:
$ git merge hot-fix
产生冲突
冲突产生的原因:
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替
我们决定使用哪一个。必须人为决定新代码内容。
解决冲突
编辑有冲突的文件,删除特殊符号,决定要使用的内容
特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix
在解决冲突之后可再执行添加到暂存区 $ git add 操作,并执行提交(注意:此时使用 git commit 命令时不能带文件名)
5. 远程仓库操作
在将文件添加到仓库区之后的操作便是,将仓库区的文件提交到远程仓库里。
通过 git remote add 别名 远程地址 命令可以创建远程仓库别名:
$ git remote add origin https://github.com/name/name_cangku.git
表示把你本地的仓库与GitHub上的远程仓库连接起来。只需要连接一次,以后提交的时候就可以不用写这条命令了。name是你的github名字,name_cangku是你的仓库名。注意不要把后面的.git给漏掉了!
通过 git remote -v 命令可以创建远程仓库别名:
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git remote -v
origin https://github.com/name/name_cangku.git (fetch)
origin https://github.com/name/name_cangku.git (push)
ori https://github.com/atguiguyueyue/git-shTest.git (fetch)
ori https://github.com/atguiguyueyue/git-shTest.git (push)
这里有两个远程库,在推送本地分支到远程仓库时可以根据别名来区分远程仓库。
通过 git clone 远程地址 命令可以克隆远程仓库到本地:
$ git clone https://github.com/atguiguyueyue/git-shTest.git
注意:clone 会做如下操作。1、拉取代码。2、初始化本地仓库。3、创建别名
push操作
通过 git push 别名 分支 命令可以推送本地分支到远程仓库:
$ git push origin master
1、将 本地当前分支 推送到 远程指定分支 上(注意:pull是远程在前本地在后,push相反):
$ git push origin <本地分支名>:<远程分支名>
2、将 本地当前分支 推送到 与 本地当前分支 同名的远程分支上:
$ git push origin <本地分支名>
pull操作
通过 git pull 远程库地址别名 远程分支名 命令可以将远程仓库对于分支最新内容拉下来后与
当前本地分支直接合并:
$ git pull origin master
1、将 远程指定分支 拉取到本地指定分支上:
$ git pull origin <远程分支名>:<本地分支名>
2、将远程指定分支 拉取到 本地当前分支 上:
$ git pull origin <远程分支名>
6. 在项目提交时 Git 应当执行的操作流程
$ git stash save '注释内容'
//能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。
//注意,这只能暂存已经tracked的文件,即已经提交过的文件,而新加的文件则还是不能暂存成功
$ git pull origin develop
//从远程仓库拉去最新代码
$ git stash show
//查看堆栈中最新保存的stash和当前目录的差异。
$ git stash pop
//将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。注:该命令将堆栈中最近保存的内容删除
//(栈是先进后出)
$ git add .
//将工作区代码添加至暂存区
$ git commit -m
//将暂存区代码添加至本地仓库进行跟踪
$ git push origin HEAD:xxx
//将本地代码推去到远程仓库
7. Git界面年粘贴/复制快捷键
ctrl/shift + Ins 键
8. Git忽略文件操作
#为注释
*.txt #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
9. 常用的Linux命令
平时常用命令:
1)、cd : 改变目录。
2)、cd . . 回退到上一个目录,直接cd进入默认目录
3)、pwd : 显示当前所在的目录路径。
4)、ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。
5)、touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。
6)、rm: 删除一个文件, rm index.js 就会把index.js文件删除。
7)、mkdir: 新建一个目录,就是新建一个文件夹。
8)、rm -r : 删除一个文件夹, rm -r src 删除src目录rm -rf / 切勿在Linux中尝试!删除电脑中全部文件
9)、mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,
必须保证文件和目标文件夹在同一目录下。
10)、reset 重新初始化终端/清屏。
11)、clear 清屏。
12)、history 查看命令历史。
13)、help 帮助。
14)、exit 退出。
15)、#表示注释
提示:本人编写为原创,内容如有问题欢迎指正
最后
以上就是喜悦大山为你收集整理的git系统学习笔记前言一、初次安装git所需操作二、使用介绍的全部内容,希望文章能够帮你解决git系统学习笔记前言一、初次安装git所需操作二、使用介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复