工作区:working directory,在当前计算机中创建的目录。可以理解为本地目录。
暂存区:add 命令将文件的修改添加到暂存区,直到 git commit 将暂存区中的内容全部一次性提交到仓库,可以理解为一个临时中转站。
版本库 :repository,工作区中有一个隐藏的目录 .git,该目录中的所有的文件都可以被 git 管理起来。每个文件的修改、创建、删除等所有的操作,git都能跟踪,记录相应的版本,方便可以随时恢复到某个版本。可以理解为本地的一个记录库,里面记录了工作区提交的变动。
明确一点,所有的版本控制系统,只能跟踪文本文件的改动 :创建文件,删除文件,修改文件,添加内容,删除内容等。不跟踪文件夹的改动:如空文件夹的创建。
master:创建版本库的时候,git 会默认帮我们创建一个主分支 master,所以此时的 commit 全部提交到版本库中的 master 分支上。其他的都被称为xx分支master分支是一条线,git 用 master 指向最新的提交,再用 HEAD 指向 master。
sudo apt-get install git
ssh-keygen -t rsa -C "git注册邮箱地址"
ssh -T git@github.com
config --global user.name "your name" #配置用户名
git config --global user.email "your email" #配置email
git init
git add xxx
git commit -m "提交的日志"
查看本地目录和仓库之间是否同步:
git status
git log # 显示详细版本信息,包括改动人,时间,版本提交信息
git log --pretty=oneline # 显示 完整版本号,版本提交信息
git log --oneline # 显示简略版本号,版本提交信息
git reflog # 查看git中执行过的命令,可以确认当前版本。
git diff
使用 git checkout 丢弃工作区的改动。
(1)如果工作区的文件提交到缓存区,则恢复为缓存区中的状态 :
git checkout <文件>
(2)如果工作区的文件未提交到缓存区,则恢复为仓库中某个版本的状态:
git checkout HEAD -- [文件]
使用 git reset 取消暂存
(1)取消暂存。默认为全部暂存区的文件,即等于 git reset * ,也可指定文件:
git reset <文件>
(2)拉取某个版本库的文件到暂存区 并且该操作不影响工作区:
git reset HEAD <文件>
(3)改动了工作区,进行了add,也进行了commit,这时候就需要 回退版本 了:
git reset --hard HEAD^
删除文件对于git而言,被认为是一个修改
rm -rf filename
git rm filename
git commit -m "xxx"
进入git管理的项目文件夹中,创建 .gitignore 文本,就可以在该文本中设置要忽略的文件了。【 .gitignore 】这个文件本身会提交到版本库中去。用来保存的是公共的需要排除的文件。
如果.gitignore忽略规则创建于文件提交代码库之后,则.gitignore规则不会影响目前所提交的文件(不会自动把文件从服务器端删除掉)。需要手动删除,用如下的方式:
git rm --cached <FILENAME> -f
git rm --cached <DIR> -r
可以使用shell所使用的正则表达式来进行模式匹配
匹配模式最后跟 "/" 说明要忽略的是目录
使用 !取反。例如目录中包含 test.a,并且 .gitignore 文件中包含 *.[oa],如果在文件中加入 !test.a 表明忽略除 test.a 文件以外的后缀名为 .a 或者 .o 的文件)
示例:
# 此为注释 – 将被 Git 忽略
*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
git clone https://github.com/.....git
git fetch origin # origin是本地仓库
git merge origin/master
git pull <本地仓库> master # 这个命令可以拉取最新版本并自动合并
git init
git remote add origin git@github.com:yourName/yourRepo.git
git add xxx # 添加缓冲到本地的仓库
git commit -m "提交说明" # 正式提交到本地的仓库
git push origin master # 提交到远程的GitHub仓库
git branch <新分支名字>
git checkout <新分支名>
git branch -d <分支名称>
git branch
git push <本地仓库名> <新分支名>
git remote add <远程端名字> <地址>
git push <本地仓库名> :<GitHub端分支>
git merge <子分支>
原文:https://www.cnblogs.com/challa/p/15229202.html