基本操作
git init
创建.git目录初始化git
git add .
添加当前目录到git中
git commit -m "first commit"
放入暂存区中
git clone https://github.com/mzkmzk/Read.git [重命名本地目录]
克隆现有仓库
git remote add origin https://github.com/1135/note/git/git.md
添加远程仓库
添加后远程仓库的名字叫“origin”(可以其他)
git push -u origin master
远程仓库为空时:第一次push时加上-u参数,git会把本地master分支推送到远程,# 还会把本地的master分支与远程的master分支关联起来,以简化下一次推送
git push #当前分支master推送到远程
git diff
git diff : 查看尚未暂存的文件更新了哪些部分,比较工作目录和暂存区的差异
git diff --staged 查看已暂存的下次将要提交的.
git commit
git commit
进入编译器,里面包含更改信息
git commit -m "内容"
直接提交内容,不进入编译器
git commit -a
提交所有已跟踪的文件,包括未add到缓存区的.(但不会提交未跟踪的)
git rm
要从Git移除文件,必须git rm 掉已跟踪文件,并且commit到缓存区.并且在工作目录中删除指定文件.
会有几种情况
删除之前修改过并且放到暂存区的:必须git rm -f 文件强制删除.(防止误删未add到缓存区的文件)
当你想缓存区和仓库都删除了某目录,但工作区保留 :git rm --cached 目录/
git rm 后面可跟glob
删除log下后缀为log的文件
git rm log/*.log
为何要加,因为不需要shell帮忙,git自行解析
git rm *~ ,所以~结尾的文件.
git mv
重命名文件
如本语句
git mv README.md README
git会自动执行
mv README.md README
git rm RADME.md
git add README
git diff
比较文件差异
git diff
git diff --cached # 比较暂存区和版本库差异
git diff <$id1> <$id2> # 比较两次提交之间的差异
git diff
分支
git branch -r #查看远程分支
git branch new_branch_name #新建一个分支
git branch --merged #查看已经被合并到当前分支的分支
git branch --no-merged #查看未被合并到当前分支的分支
git checkout branch_name #切换分支
git checkout -b branch_name #创建分支并切换
git branch -d branch_name #删除分支
git branch -D branch_name #强制删除分支
git push origin :branch-name #删除远程分支(先在本地删除该分支),原理是把一个空分支push到server上,相当于删除该分支。
从远程clone一个项目,虽然远程上该项目是有分支的,但clone下来后发现只有master分支,解决:
git checkout -b not_master_branch origin/not_master_branch #本地创建一个分支,指向对应的远程分支
git pull origin not_master_branch #将远程的not_master_branch分支pull下来
git push origin not_master_branch #将修改后的not_master_branch分支push到远程的not_master_branch