git 常用命令

基本操作

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

你可能感兴趣的:(git 常用命令)