三、Git常用命令

创建新版本库

git clone <url> #克隆远程版本库
git init #初始化本地版本库

添加和修改文件

// 添加文件到暂存区
git add . #添加所有改动过的文件
git add <file1> <file2> ... #添加指定的文件
git add <dir> #添加指定目录(包括子目录)

// 修改
git mv <old旧文件名> <new新文件名> #文件重命名
git rm <file> #删除指定文件
git rm --cached <file> #停止跟踪文件但不删除

提交文件

git commit -m <file> #提交指定文件
git commit -m "注释" #提交所有更新过的文件
git commit -amend #修改最后一次提交
git commit -C HEAD -a -amend #增补提交(不会产生新的提交历史记录)

查看

git status #查看所有文件状态
git status <file> #查看指定文件状态
#查看工作区的文件和暂存区文件的差异
git diff #查看所有文件    注意:按Q退出
git diff <file> #查看指定文件
# --- a 表示修改之前的文件
# +++b 表示修改后的文件

git log #查看提交记录
git log -p <file> #查看指定文件的提交记录
git blame <file> #以列表方式查看指定文件的提交记录
git log <branch> #查看某个分支历史记录
git log --all #查看所有分支历史记录
git branch -v #查看每个分支最后的提交

撤销操作

git reset -hard HEAD #撤销工作目录中所有未提交文件的修改内容
git checkout HEAD <file1> <file2> #撤销指定的未提交文件的修改内容
git checkout HEAD . #撤销所有文件
git revert <commit> #撤销指定的提交

分支操作

git branch #查看本地分支
git branch -r #查看远程分支D
git branch -a #显示所有分支(包含本地和远程的)
git branch <new-branch> #创建新分支D
git branch -D <branch> #删除本地分支
git push origin --delete <branchName> #删除远程分支

git checkout <branch/tagname> #切换到指定分支或标签

标签操作

git tag -a #显示本地所有标签
git tag <tagname> #基于最新提交创建标签
git tag -a <tagname> -m '备注信息' #创建带有备注标签
git tag -d <tagname> #删除本地标签

git push origin --tags #提交所有标签到远程仓库
git push origin <tagname> #提交指定版本到远程仓库
git push origin --delete <tagname> #删除远程仓库对应标签

git checkout <branch/tagname> #切换到指定分支或标签

合并与衍合

git merrge <branch> #合并指定分支到当前分支
git rebase <branch> #衍合指定分支到当前分支

远程操作

git remote -v #查看远程版本库信息
git remote show <remote> #查看指定远程版本库信息
git remote add <remote> #添加远程版本库
git remote add origin http://github.com/Learn.git #本地仓库很远程仓库关联

#提交代码到远程仓库
#必须commit才可以push和pull代码(也就是说必须有节点才可以pull/push代码)
git push <remote> <branch> #提交代码及快速合并
git push <remote>:<branch>/<tagname> #
git push --tags #提交所有标签
git push -u origin master #提交到远程仓库的master分支

#获取代码到本地
git pull <remote> #(合并)从远程获取最新版本并merge到本地
#merage操作会生成一个新的节点,和之前的提交分开显示
git pull --rebase #(重组)获取代码到本地
#rebase操作不会生成新的节点,上将两个分支融合成一个线性的提交  
#好处:想要更好的提交树,使用rebase操作更好一点。这样可以线性的看到每一次提交,并且没有增加提交节点。  
#merge操作遇到冲突的时候,当前merge不能继续进行下去。手动修改冲突内容后,add修改,commit就可以了  
#rebase操作的话,会中断rebase,同时会提示去解决冲突。解决冲突后,将修改文件add后,执行git rebase --continue继续操作,git rebase --skip跳过这个提交,中止并回到git rebase之前的状态请执行git rebase --abort

git fetch <remote> #从远程获取最新代码到本地,但不会自动merge
git fetch origin master:tmp #从远程仓库master分支获取最新,在本地建立tem分支
git diff tmp #将当前分支和tmp进行对比
git merge tmp #合并tmp分支到当前分支
原文地址:https://www.cnblogs.com/yuxi2018/p/11285911.html