Git 常用指令整理 Posted on 2017-05-17 | In GIT | visitors 检出项目git clone [url]git clone [url] dirname # 检出代码到指定目录git clone [url] -b branch_name # 检出指定分支代码git submodule init # 初始化submodulegit submodule update # 更新检出submodulegit submodule update --init --recursive # 初始化检出所有submodule更新git fetch # 获取远程的更新git fetch origin master # 获取master分支的远程更新git pull origin master # 获取远程master分支到更新,并且与本地的master分支合并分支git branch # 查看本地分支git branch -r # 查看远端分支git branch -a # 查看本地和远端分支git branch my_branch # 创建my_branch分支git checkout my_branch # 切换到my_branch分支git checkout -b mybranch # 创建并切换到my_branch分支git branch -d mybranch # 删除本地mybranch分支(需先切换到其它分支)git push origin mybranch:mybranch # 以本地mybranch分支新建远端mybranch分支git push origin --delete mybran # 删除远端mybranch分支git merge mybranch # 将mybranch分支合并到当前分支git merge --no-ff mybranch # 将mybranch分支合并到当前分支 使用非快进式合并提交git status # 查看修改状态git add file.js # 提交文件修改到暂存区git reset file.js # 撤销提交文件到暂存区git commit -m 'message' # 提交修改git commit -am 'message' # 提交所有变动 相当于 git add . && git commit -m 'message'# git push之前 先更新代码 git fetch && git pull# push操作后 别人才能 fetch || pull 到你提交的更新git push origin master # 将提交推送到远端master分支暂存git stash # 暂存当前工作环境git stash list # 列出所有暂存的工作环境列表git stash pop # 恢复到上一个暂存的工作环境 并从stash list中删除git stash apply stash@{0} # 恢复 stash@{0} 工作环境 不从stash list中删除git stash drop stash@{0} # 从stash list中删除 stash@{0}工作环境git stash clear # 清空暂存工作环境列表Taggit fetch -t # 获取远端tag更新git tag # 列出所有taggit tag tag_name -m 'message' # 创建tag_name标签git show tag_name # 查看tag信息git checkout tag_name # 切换到tag_name标签git tag -d tag_name # 删除tag_name标签git push origin tag_name # 将tag_name标签提交到远端git push origin --delete tag tag_name # 删除远程tag_name标签Loggit log -p #查看上次提交的差异变化git log -p -2 #查看最近两次提交的差异变化git log --online #列表列出提交记录git log --committer xxx #列出xxx的提交记录其它常见问题.gitignore 无效原因可能是 gitignore 中的文件已经存在git版本库中,需要将文件从git中移除,gitignore文件才会生效git rm -r --cached .git add .git commit -m 'update .gitignore'更改项目git地址git remote rm origin #删除旧的git地址git remote add origin [url] #添加新的git地址查看文件变更记录git log -p file_name更新远程分支列表信息git remote update origin --prune忽略文件权限变动git config core.filemode false