常用知识
首先这里再明确一下,所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。
- 初次使用 git 设置
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
-
git init
- 初始化当前所在目录,使之变成一个git可以管理的仓库
-
git add
- 添加一个文件到git仓库,标记确切
-
git add -A
- 添加所有文件到git仓库
-
git commit -m <‘message’>
- 正式提交add后的文件到仓库
- m 后面是备注信息,必须有这一项
-
git log
- 查看版本历史
-
git reflog
- 可以查看从创建开始到现在,所有的git命令,并显示版本gitid
-
git reset HEAD^
- HEAD指的是当前版本,代表上一个,HEAD^代表上上一个
- 也可以用gitid来代替HEAD
-
git reset --hard <版本id>
-
到<版本id>版本
-
git reset HEAD
- 可以撤销指定文件对暂存区的修改,回到HEAD版本
-
git reset --hard --soft --mixed 区别
- –hard,会让工作区,暂存区,版本区的HEAD全回到指定的版本
- –soft,不动工作区和暂存区,只让版本区的HEAD回到指定版本
- 默认,mixed,只让暂存区回到指定版本状态
- 如果参数是文件名称,则指定该文件回到该状态,否则是全仓库回到状态
-
git checkout –
- 会回到最后一次commit或者add时的状态
- 谨慎,会把你的修改全部撤销的
- 只对工作区有效
-
git branch
- 显示所有分支
-
git branch dev
-
git merge dev
- 当前和dev合并
- Auto-merging : 这些文件自动合并
- CONFLICT(content) 文件冲突,修改后提交
-
git checkout dev
- 切换到dev
-
git log --graph
- 查看版本历史图形
- git log 用 q 退出
-
git stash push -m '注释’
- 隐藏工作现场
-
git stash list
- 查看工作现场
-
git stash pop
- 弹出最上面的工作现场
- 删除现场
-
git stash apply stash@{ }
- 查看工作现场{}
- 不删除工作现场
分支合并
-
查看分支列表
$ git branch -a -
切换到本地dev分支
$ git checkout dev -
更新本地dev 分支
$ git pull -
切换到master 分支
$ git checkout master -
更新 本地master 分支
$ git pull -
合并本地 dev 到 本地master
$ git merge dev -
将本地mater 推到远程master
$ git push
远程操作
创建 SSH Key
- 在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
- 你需要把邮件地址换成你自己的邮件地址,然后一路回车
ssh-keygen -t rsa -C "youremail@example.com"
- git remote -v
- 查看本地和远程服务器是否连接
- git clone <SSH服务器地址>
- 从远程服务器克隆下来文件
- git push origin master
- 将本地的分支master推向远程
- git pull origin master
- 将远程服务器上的东西拉下来
- 和克隆是两码事,克隆是第一次啥都没有的时候,复制服务器上的东西,拉是克隆之后的。
- 如果服务器和本地没有冲突直接拉下来。如果存在冲突,需要做出修改。
-
- 本地仓库初始化远程仓库
- git init
- git add -A
- git commit -m ‘版本名称’
- git remote add origin <远程服务器地址>
- git remote -v
–检查本地是否与服务器建立连接 - git push -u origin master
– 初始化远程仓库,只在第一次初始化服务器时加 -u