git是分布式的版本控制。文件分三种状态:已修改、已暂储、已提交
安装git(git基于Linux 自带bash环境)
进入项目根目录--右键--git bash here--cd 项目根目录(bash环境)--git init(会初始化一个.git的隐藏文件(仓库)(已暂存和已提交的文件都在该仓库中))
git add xxx.html(放入暂存区)
git add xxx.html css/xxx.css js/xxx.js (可以同时添加多个文件夹/文件,中间用空格隔开)
git commit -m '这是备注信息' (提交。-m表示备注mark)(经过一个较长阶段开发或者一个功能开发完成,可以将暂存区中的内容一次性提交到仓库中(永久保存))
git commit -amend打开编辑器纠正错误
git rm -rf --cached从缓存中删除
配置用户(当前用户,记录开发者信息):
git config --global user.name zhangsan(配置用户名)
git config --global user.email 12345@qq.com
git config --list (查看配置信息。打开"c:/用户/zhang/.gitconfig"文件也可以查看)
git config --global alias/unset 创建/删除快捷方式
git log(查看提交日志;版本号(存盘点))
git log --oneline --graph图形输出
git status(查看文件状态(绿颜色表示已add到暂存区,红颜色表示工作区中的文件夹/文件未add到暂存区))(会自动忽略空文件夹)
git add -A(添加所有目录和文件到暂存区 -A表示all(大写A))
git add * (同上)
git reset --hard 16f5b2e100529le16f5b2e100529le (从仓库中还原某个版本;版本号(存盘点)可以通过"git log"命令查看)
git reset --soft 。。。。。。。。。。。。。同上,有不同的地方
git rebase 变基
git stash list
git stash apply 取出
git stash drop 删除
git stash drop 取出并且删除
分支(分支与分支之间互不影响。必须先commit一次才会产生master分支)(一个分支可能表示一个功能模块。分支可以允许一个人开发多个模块)
git checkout xxx.html (切换工作区)
git branch 分支名 (新建分支)
git branch (查看分支。*号所在的分支表示当前分支)
git checkout 分支名 (切换分支)
git checkout -b 新分支名 (新建分支,并将当前分支内容检出到新分支中(新建分支+检出的简写方式))(常用)
git branch -d 分支名 (删除分支,-d表示delete)(-D表示强制删除) (不能删除当前分支,需要切换到其他分支删除)
git merge 其他分支名 (分支合并。其他分支重新修改过的内容合并到当前分支(可能会冲突))
分支是有继承关系的。新建分支时,新建的分支会继承当前分支的内容(包括所有已提交的版本号)。修改当前的分支不会影响已经创建好的分支(分支之间互不影响),多个分支之间最后需要git merge进行分支合并。
HEAD表示一个指针,指向当前分支。(HEAD表示当前分支)
远程共享仓库(多个开发者)
git push 远程仓库地址 master (将本地master分支共享到远程仓库的master分支)
git push 远程仓库地址 本地分支:远程分支
git push zhangsan@192.168.1.2:/home/zhangsan/xxx.git master
git pull 远程仓库地址 master (将master下载到本地)
git pull zhangsan@192.168.1.2:/home/zhangsan/xxx.git master
远程共享仓库中: 必须是一个 xxx.git结尾的文件夹
git init --bare (必须是一个裸仓库。初始化裸仓库前先"cd xxx.git")
git remote add 别名 zhangsan@192.168.1.2:/home/zhangsan/xxx.git (为远程主机名取一个别名)
git remote (查看远程主机别名)
git remote 别名 show (查看远程主机别名对应的具体地址)
git pull 别名 master (通过别名下载到本地)
git clone 远程仓库地址 === mkdir 目录 + cd 目录 + git init + git pull (会默认为远程主机名取一个别名:origin)
git clone zhangsan@192.168.1.2:/home/zhangsan/xxx.git 自定义仓库名 (可以克隆远程仓库到本地,并自定义仓库名)
gitHub/gitLab 就相当于远程共享仓库服务器 (先注册账户,新建一个仓库(私有的仓库要收费))
ssh-keygen -t rsa (在本地生成gitHub ssh连接的公钥/私钥 实现免密码登陆)
打开保存在本地的公钥:"c:/用户/zhang/.ssh/id_rsa.pub" 全选--复制--gitHub注册账户--右上角头像--Settings--SSH and GPG keys--粘贴到Key中--Key最后的"Zhangsan@Zhangsan-PC"粘贴到Title中--Add SSH key
以上两行实现免密码远程登录gitHub服务器仓库。
git push git@github.com:Zhangsan/xxx.git master (Zhangsan是gitHub网站注册的账号,xxx.git是账号新建的仓库)
git clone git@github.com:Zhangsan/xxx.git 自定义的仓库名
github项目基本操作说明
-->fork项目
-->git clone http克隆项目
-->cd 到项目
-->git romote添加上游+上访地址
-->git romote -v 查看上下游
-->git pull up master 拉去最新的代码
-->git checkout -b 'new....'创建新的分支
->subline -text修改代码
-->add commit 提交代码
-->切到checkout master
-->再次下载新代码pull up master
-->切到分支 测试
-->git rebase master ->log
-->切到master ->log
--> 切到分支
-->git rebase master
-->git push aringe 分支
网友评论