Git 安装 · 操作 · 命令行
简介:
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
-
Workspace:工作区(就是你在电脑里能看到的目录)
-
Index / Stage:暂存区(一般存放在 ".git 目录下" 下的 index 文件(.git/index)中)
-
Repository:仓库区(或本地仓库)
-
Remote:远程仓库
安装:
-
源码安装:源码包下载地址:https://git-scm.com/download
shell#安装指定系统的依赖包: ########## Centos/RedHat ########## $ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel ########## Debian/Ubuntu ########## $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev #解压安装下载的源码包: $ tar -zxf git-1.7.2.2.tar.gz $ cd git-1.7.2.2 $ make prefix=/usr/local all $ sudo make prefix=/usr/local install
-
Window 安装:安装包下载地址:https://gitforwindows.org/
完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。 在开始菜单里找到"Git"->"Git Bash",会弹出 Git 命令窗口,你可以在该窗口进行 Git 操作。
-
Ubuntu安装:
shell$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev $ apt-get install git $ git --version
基本信息:
-
查看版本:
java$ git --version git version 2.22.0.windows.1
-
查看用户信息:
shell#当前登入用户: $ git config --global user.name Zhangsl #用户邮箱: $ git config --global user.email 547125836@qq.com
-
设置用户信息:
shell#设置用户名:不要'' $ git config --global user.name 'new_name' $ git config --global user.name Nepalese $ git config --global user.name Nepalese #设置邮箱: $ git config --global user.email 'xxx@qq.com'
-
查看已有配置:
shell$ git config --list core.symlinks=false core.autocrlf=true core.fscache=true color.diff=auto color.status=auto ...
仓库信息:
-
初始化仓库:
shell#使用当前目录作为 Git 仓库,文件夹下初始化一个仓库 $ git init #使用我们指定目录作为 Git 仓库 $ git init path
-
查看仓库:
shell#本地所有分支: $ git branch * master #本地和远程所有分支: $ git branch -a * master remotes/origin/master #远程所有分支: $ git branch -r origin/master #查看在你上次提交之后是否有修改 $ git status -s On branch master Your branch is up to date with 'origin/master'. Untracked files: (use "git add <file>..." to include in what will be committed) git nothing added to commit but untracked files present (use "git add" to track)
-
分支管理:
shell#创建分支:temp8023 $ git branch temp8023 $ git branch * master temp8023 #切换分支: $ git checkout temp8023 Switched to branch 'temp8023' #创建并切换分支:name $ git checkout -b name #删除本地分支:temp8023 $ git branch -d temp8023 Deleted branch temp8023 (was 781f2e3). $ git branch * master #删除远程分支:name $ git push origin :name #合并分支:(本地和远程) $ git merge name $ git merge origin/name
-
文件管理:
shell#添加到暂存区:(文件绝对路径/或在当前目录下) $ git add E:\ZSLWORK\AndroidStudio\ToolLibs\app\src\main\res\drawable\img_test.jpg #错误例子 $ git add drawable/img_test.jpg fatal: pathspec 'drawable/img_test.jpg' did not match any files #删除本地文件:img_test.jpg(已添加到暂存区) $ git rm E:\ZSLWORK\AndroidStudio\ToolLibs\app\src\main\res\drawable\img_test.jpg error: the following file has changes staged in the index: app/src/main/res/drawable/img_test.jpg (use --cached to keep the file, or -f to force removal) $ git rm -f E:\ZSLWORK\AndroidStudio\ToolLibs\app\src\main\res\drawable\img_test.jpg rm 'app/src/main/res/drawable/img_test.jpg' #移动或重命名 $ git mv 'oldName' 'newName'
-
克隆项目:(类似 svn checkout)
shell$ git clone <repo> #克隆到指定的目录 $ git clone <repo> <directory> #克隆远程项目: $ git clone git://github.com/schacon/grit.git #repo:Git 仓库 #directory:本地目录。
拉取与提交:
-
提交到分支:
shell$ git commit -m "notice" $ git commit -m "add a image" [master 70f1eba] add a image 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 app/src/main/res/drawable-v24/img_bg_app4.jpg
-
推送到远程:
shell#需要登入 $ git push origin master Enumerating objects: 14, done. Counting objects: 100% (14/14), done. Delta compression using up to 8 threads Compressing objects: 100% (8/8), done. Writing objects: 100% (8/8), 102.02 KiB | 34.01 MiB/s, done. Total 8 (delta 5), reused 0 (delta 0) remote: Resolving deltas: 100% (5/5), completed with 5 local objects. To https://github.com/IloveJavaCoding/ToolLibs.git b866012..70f1eba master -> master
取消缓存:(绿色状态 --> 红色)
shell
#执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存
$ git reset HEAD 'fileName' Unstaged chnages after reset:
#".idea"就是要删除的文件夹名称
$ git rm -r --cached .idea
删除项目git:
1. 删除工程文件夹中的.git文件夹;
2. setting---versioncontrol中 点击减号, 删除;
查看提交历史:
shell
$ git log
commit 9fa7fd35128340bf35172e15bf8ef85f250b5964 (HEAD -> Nepalese)
Author: Nepalese <547125836@qq.com>
Date: Mon Jul 13 16:40:34 2020 +0800
:...skipping...
commit 9fa7fd35128340bf35172e15bf8ef85f250b5964 (HEAD -> Nepalese)
Author: Nepalese <547125836@qq.com>
Date: Mon Jul 13 16:40:34 2020 +0800
#简洁版本
$ git log --oneline
9fa7fd3 (HEAD -> Nepalese) in the second screen only use textureView
887cc17 for program, replace surfaceView by textureView then according the current state to adjust the orientation of screen
747bae2 renderTee adjust second screen add cover image adjust stop page
ae687a1 renderTee adjust second screen add cover image adjust stop page
86fe829 (origin/Nepalese) use renderTee to control second screen
e7fcbb8 set release version configuration
**标签:**希望永远记住那个特别的提交快照(给最提交打上标签) [指向某个 commit 的指针]
shell
#-a 选项意为"创建一个带注解的标签"
$ git tag -a 'tagName'
#查看标签
$ git log --decorate
#追加标签 85fc7e7 -> commit 号
$ git tag -a 'tagName' '85fc7e7'
退出Git 的Vim:
'c' --> 打开编辑模式;
按下'Esc' 退出编辑状态,再按住'Shift', 连按两次'z'。
小知识:按 'q' 退出当前Git 指令。
参考资料: