####GIT简述:
百度百科:Git是一款免费、开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
这里就粗略的说一下,具体的网上有详细的介绍。
#####GIT的工作流程
- 从服务器上克隆完整的 Git 仓库到本地
- 在本地根据需要创建/删除分支,编辑代码等
- 在本地仓库进行代码文件的添加/提交等操作
- 在本地进行分支的合并/删除等操作
- 同步服务器上的代码,然后与本地合并
- push 到远程服务器
######Git 的安装
Windows:https://git-scm.com/download/win
Ubuntu:shell sudo apt-get install git
windows下安装会有客户端,git bash, git cmd ,git gui,基本只用git bash 就可以了。
Ubuntu下安装并不会有客户端,直接在终端中操作就行
######Github 账号注册
Git 是一个工具,而 Github 时一个托管平台。关于他们的历史可以自己百度了解一下。
Github:https://github.com/
在官网注册一个Github账号,这里将作为你的服务端来托管你的代码。
(关于Github上创建仓库等设置内容就不再多说)
######Git 个人配置
进入git环境,window启动git bash。ubuntu忽略。
完善 Git 个人信息
username:git config --global user.name 'myname'
email:git config --global user.email '123@qq.com'
配置完后可以执行git config --global --list
可以查看配置结果。
**创建 ssh keys 密钥对 **
首先确认本地有没有密钥对,cd ~/.ssh 查看是否有 id_rsa 和 id_rsa.pub文件,如果没有:
ssh-keygen -t rsa -c 'password'
执行该命令后会在 ~/.ssh 下生成一对密钥,这是用于ssh连接服务器的。
查看生成的公钥:cat ~/.ssh/id_rsa.pub
将该公钥交给服务端(github)管理添加到远程仓库
添加方式: (github)seetings -> SSH and GPG keys -> New SSH key 将公钥内容粘贴进Key文本域内。 然后点击add key。
验证:ssh -T git@github.com
如果返回You’ve successfully authenticated, but GitHub does not # provide shell access.就代表添加成功了
######Git 操作命令
再说git命令前先来简单了解一下git的工作方式:
Git 分为 工作区 - 暂存区 - 仓库
代码的编辑修改,文件增删都是在工作区操作,当发生以上行为后保存这些操作就给添加到暂存区中,最后提交到仓库
初始化仓库:git init
初始化一个仓库,当你建立一个文件夹打算作为git仓库时,这一定是你第一步要去做的事情,执行完后该目录下会多出一个.git文件夹
查看信息状态 git status
git status 可以用来查看当前项目状态,没有任何修改时和有修改没提交,修改已提交时都有相应的显示
添加文件 git add
git add file 是将修改添加到暂存区,可以指定文件名,也可以用 . 来添加当前路径下的修改 或者是用 * 来添加所有修改。刚才通过status发现了一个修改的文件,现在可以用add添加到暂存区。
提交文件 git commit -m " "
通过commit命令将暂存区的问价提交到仓库,全部提交后,status查看暂存区会显示空
Clone 文件 git clone
通过这个命令可以将远程仓库的一个项目克隆到本地,repo 是要clone的项目的远程地址,directory 是clone下来后在本地保存的名字,如果没有就用原来的名。
查看不同 git diff
取消已缓存的内容 git reset HEAD
关于取消历史缓存或者是指定缓存可以HEAD^ 和 id 等方式
分支操作
git branch 当前所在分支
git branch -a 查看所有分支
git branch < branchname > 创建分支
git checkout < branchname > 切换分支
git merge < branchname > 合并指定分支到当前分支
git branch -d (branchname) 删除分支
查看远程库信息 git remote -v
提取远程库信息到本地 git pull < repo >
提取远程库信息 git fetch < repo >
与 pull 命令相比,fetch 只提取并不与本地合并,通常与 git diff ,git merge命令使用, pull命令是直接合并。fetch更加安全些
删除工作区文件 git rm < file >
删除暂存区文件 git rm -f < file >
查看提交日志 git log
查看分支合并图 git log --graph
查看历史命令 git reflog
丢弃工作去修改 git checkout --file
保存工作状态 git stash
查看所有保存工作状态 git stash list
恢复/删除工作状态 git stash apply/drop
打标签 git tag < name >
推送本地标签 git push origin < tagname >
推送所有标签 git push origin --tags
删除一个本地标签 git tag -d < tagname >