第1章 Git
git 英译:饭桶,无用的人
Git 发展由来
Git 版本控制
版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统。
版本控制发展
1、本地式(自己电脑)
2、集中式(需要联网)
3、分布式(git)
版本控制好处
■速度快 (自己有本地仓库,SVN受网络等影响)
设置简单
非线性开发模式
完全分布式(避免单点故障)
第1章 第一章
1.1 Git介绍
Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何项目及文件。
1.2 环境安装:
1.2.1 下载
官方下载 https://git-scm.com/
第二步选择 click here to download manually
注意这个下载有点慢网速好的建议点击click here to download manually下载,经过测试可以右击 click here to download manually 选择迅雷或其他下载工具下载(推荐快)
1.1.1 安装客户端工具
在“Configuring the line ending conversions”选项中,
第一个选项:如果是跨平台项目,在windows系统安装,选择;
第二个选项:如果是跨平台项目,在Unix系统安装,选择;
第三个选项:非跨平台项目,选择
安装客户端工具
1.1.1 启动git
打开后进入 git 软件界面(可对文件和项目管理)
推荐 git 中文网站https://git-scm.com/book/zh/v2
第1章 git报错
xuebao@DESKTOP-8QV2RMH MINGW64 /d/project-git (master) $ git add -A warning: LF will be replaced by CRLF in file.txt. The file will have its original line endings in your working directory. 解决方法: $ git config core.autocrlf false 报错二git pull 失败 ,提示:fatal: refusing to merge unrelated histories 关于这个问题,可以参考http://stackoverflow.com/questions/37937984/git-refusing-to-merge-unrelated-histories。 在进行Git pull 时,添加一个可选项 git pull origin master --allow-unrelated-histories
4.1 Git 工作流程
workspace 工作区 工作区:
index 指数暂存区:可以通过回退工作区
repository 知识库 本库(本地):速度快
remote :GitHub 远程版本库
1.1 Git 文件变化状态周期
untracked 工作区 :未跟踪需要 add (新增一个文件,不会被git管理,需要add 文件到暂存区,才能被发现)
unmodified 未改性的 (未被修改的)
modified改进的 修改 (修改了,)
staged 上演 暂存区 ()
新加文件一次,文件修改是叠加的。
1.2 git 文件状态操作
1.1.1 打开git bash (windos系统下操作,有linux基础命令最好)
4.3.1.1 进入 d盘 红色为命令操作 xuebao@DESKTOP-8QV2RMH MINGW64 ~ $ cd d: 4.3.1.2 ls查看目录结构 xuebao@DESKTOP-8QV2RMH MINGW64 /d $ ls $RECYCLE.BIN Program\ Files\ (x86) 360WiFi project-2 360安全浏览器下载 project-git 4.3.1.3 创建一个project-get 文件夹 $ mkdir project-get xuebao@DESKTOP-8QV2RMH MINGW64 /d $ ls 4.3.1.4 cd project-get/ 进入目录 xuebao@DESKTOP-8QV2RMH MINGW64 /d $ cd project-get/ ls –a 查看 文件和隐藏文件 xuebao@DESKTOP-8QV2RMH MINGW64 /d/project-get $ ls -a ./ ../ 4.3.1.5 git 第一个命令 git init 创建本地版本库 在自己需要项目路径下 git init xuebao@DESKTOP-8QV2RMH MINGW64 /d/project-get $ git init Initialized empty Git repository in D:/project-get/.git/ 4.3.1.6 ls –a 查看隐藏文件 xuebao@DESKTOP-8QV2RMH MINGW64 /d/project-get (master) $ ls -a ./ ../ .git/ 里面有.git/ 说明这个项目或者文件被git管理,一定要ls –a查看.git/是影藏文件 vim 创建一个文件 按i 编辑 xuebao@DESKTOP-8QV2RMH MINGW64 /d/project-get (master) $ vim test.txt 里面写着 add a file 按esc 退出 输入:wq (记得将输入法调成英文模式。)
4.3.1.7 cat 查看内容 xuebao@DESKTOP-8QV2RMH MINGW64 /d/project-get (master) $ cat test.txt add a file 4.3.1.8 第二个命令 查看git 状态 git 默认分支 master (git可以创建多个分支) xuebao@DESKTOP-8QV2RMH MINGW64 /d/project-get (master) $ git status On branch master #在我们master分支上 Initial commit Untracked files: #未被git跟踪的状态需要使用 git add (use "git add ..." to include in what will be committed) test.txt nothing added to commit but untracked files present (use "git add" to track) xuebao@DESKTOP-8QV2RMH MINGW64 /d/project-get (master) 4.3.1.9 git add 加添加文件名字 xuebao@DESKTOP-8QV2RMH MINGW64 /d/project-get (master) $ git add test.txt 再次查看状态 git status 待提交状态 $ git status On branch master Initial commit Changes to be committed: (use "git rm --cached ..." to unstage) new file: test.txt git commit –m “” 提交 “”-m 可以 $ git commit -m "add test.txt" [master (root-commit) 9aa6434] add test.txt 1 file changed, 1 insertion(+) create mode 100644 test.txt
4.4 进入项目目录创建一个版本库
xuebao@DESKTOP-8QV2RMH MINGW64 /d/project-git $ git init Initialized empty Git repository in D:/project-git/.git/ 查看项目被Git 所管理 .git/ xuebao@DESKTOP-8QV2RMH MINGW64 /d/project-git (master) $ ls -a ./ ../ .git/ file.txt 4.5 创建一个file文件 $ cat file.txt add a file 4.6 查看git状态 # master git 分支 xuebao@DESKTOP-8QV2RMH MINGW64 /d/project-git (master) $ git status On branch master Initial commit Untracked files: (use "git add ..." to include in what will be committed) file.txt nothing added to commit but untracked files present (use "git add" to track) 提交 $ git add file.txt xuebao@DESKTOP-8QV2RMH MINGW64 /d/project-git (master) $ git status On branch master Initial commit Changes to be committed: (use "git rm --cached ..." to unstage) new file: file.txt
4.7 备注方便以后查看
$ git commit -m "add a file" [master (root-commit) dcb1e37] add a file 1 file changed, 1 insertion(+) create mode 100644 file.txt 再次修改 $ git status On branch master Changes not staged for commit: #git add 提交 (use "git add ..." to update what will be committed) # git checkout 返回到版本库 (use "git checkout -- ..." to discard changes in working directory) modified: file.txt no changes added to commit (use "git add" and/or "git commit -a")
4.8 工作区-暂存区-本地版本库
第1章 Git 常用命令
5.1 文件推送 先进入目录,把项目管理用 命令:git init 5.2 git目录 bin/ cmd/ dev/ etc/ git-bash.exe* git-cmd.exe* LICENSE.txt mingw64/ ReleaseNotes.html tmp/ unins000.dat unins000.exe* unins000.msg usr/
常用命令:
常用命令: git add 添加文件 git rm 删除文件 git status 查看文件变更状态 git commit 提交文件到版本库 git push 推送到远程仓库 状态 $ git status On branch master Initial commit Untracked files: (use "git add <file>..." to include in what will be committed) .classpath .project .settings/ bin/ src/
5.3 推送到github
$ git push –u 相关联 xuebao@DESKTOP-8QV2RMH MINGW64 ~/workspace/git-study (master) $ git remote add origin https://github.com/zhangxuebao/git-study.git
5.4 查看和远程分支的关系
$ git remote -v origin https://github.com/zhangxuebao/git-study.git (fetch) origin https://github.com/zhangxuebao/git-study.git (push)