【技术干货】git常用命令
2.1 git init
语法: git init
在当前目录初始化git仓库,适用于尚未使用git管理的项目
2.2 git clone
语法: git clone <url>
例如: git clone git@vcs.test.com:scm_test/test.git
此命令clone test.git这个仓库到本地的ACTalk文件夹。
这个列子中使用的ssh协议仓库地址,可以推送代码。如果使用http协议的,则不能推送代码。
2.3 git status
语法: git status
file:///C:/Users/zhangsan/Evernote/TEMP/sss/Image(5).png
Changes to be commited: 已暂存,执行commit将被提交的文件
Changes not staged for commit: 已修改,但未暂存 #低版本git的提示信息 Changed but not updated
Untracked files: 未跟踪
2.4 git add
语法: git add <path>
git add 根据文件状态不同,作用也不同
(1)Untracked文件: 添加文件到暂存区
(2)冲突文件: 标记为已解决
(3)已修改的文件: 添加修改到暂存区
添加文件到暂存区
git add . #添加所有文件(工程文件等都会提交)
git add <filename> #添加指定文件
2.5 git commit
git commit -m "<commit message>"
提交文件到本地仓库(暂存区)
git commit -m "commit message"
跳过暂存区
git commit -am “commit message” #提交所有已修改的文件,不包含untracked文件
2.6 git log
语法: git log <options> -- <path>
常用参数有:
-<number>: 显示日志条数
-p: 显示每次提交修改了哪些代码
--stat: 修改了哪些文件,每个文件各修改多少行代码
--author: 按作者搜索
--grep: 按日志内容搜索
例如:
git log -10 -- src/main/java/aa.java
git log --stat --author chengwei
git log -p --grep bug-xxx
2.7 git diff
语法: git diff [--cached] | [--staged]
查看还未暂存的修改
git diff
此命令比较的是工作目录中当前文件和暂存区域快照之间的差异
查看已暂存的修改
git diff --cached/staged
已经暂存的文件和上次提交时的快照之间的差异
2.8 git fetch
语法: git fetch <remote_name>
例如: git fetch origin
更新远程仓库所有分支,只更新指针文件,不将最新代码merge到本地分支
2.9 git pull
语法: git pull <remote_name> <branch_name>
例如: git pull origin master
实际执行: (1)git fetch origin (2) git merge origin
先获取origin所有更新;将远程仓库master最新分支merge到当前分支(master分支)
2.10 git push
语法: git push -u <remote_name> <branch_name>
推送本地分支到远程仓库
-u: 建立跟踪关系
新分支推送到仓库后,后续推送只需要执行git push(推送)或git pull(拉取)。
2.11 git branch(用于查看分支列表)
常用参数:
不带参数: 显示所有本地分支
-r: 显示所有远程分支
-a: 显示所有分支,包括本地和远程分支
以当前分支新建一个分支
git branch <branch-name> #用checkout建分支更方便
2.12 git checkout
检出/切换分支:
git checkout <branch-name>
以当前分支新建分支并切换到新分支
git checkout -b <branch-name>
#相当于git branch <branch-name> && git checkout <branch-name>
从远程分支新建分支,并建立跟踪
git checkout -b <branchname> -t <remote-branch>
2.13 git merge
合并本地分支
git merge <branchname>
合并远程分支(直接合并远程分支,需要先执行git pull或git fetch)
git merge origin/FEA/FEA-001
2.14 git remote
git remote -v
查看远程仓库列表(分布式支持多个仓库地址)
git remote add <remote_name> <url>
添加远程仓库
git remote prune origin
清理远程仓库分支列表,删除不存在的远程分支
2.15 git remove
git rm 强制删除加-f(force)
将文件从暂存区删除
git rm --cached <file name>
不小心纳入仓库后,要移除跟踪但不删除文件
如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f(译注:即 force 的首字母),以防误删除文件后丢失修改的内容。