Git常用命令收集与整理
常用1
- git add -A 和 git add . 的区别
git add -A 提交所有变化
git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
-
git commit -a -m “massage”
其他功能如-m参数,加的-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区.
注意,新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。
建议一般不要使用-a参数,正常的提交还是使用git add先将要改动的文件添加到暂存区,再用git commit 提交到本地版本库。 -
Git手动建立追踪关系[指定master分支追踪origin/next分支。
git branch --set-upstream master origin/next
- 取回origin主机的next分支,与本地的master分支合并:
git pull origin next:master
- git config --list [列出所有 Git 当时能找到的配置]
git config --list
- git config
[检查 Git 的某一项配置]
git config user.name
- Git 命令的使用手册
git help <verb>
git <verb> --help
man git-<verb>
- 克隆远程仓库的时候,自定义本地仓库的名字
git clone http://git.oschina.net/yiibai/git-start.git mygit-start
- 紧凑的格式的状态报告输出
git status -s
//
git status --short
-
git diff 本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动
-
git diff --cached [--staged 和 --cached 是同义词]
-
git difftool --tool-help [查看系统支持哪些 Git Diff 插件]
-
git rm
-
git rm -f
-
git rm --cached
-
git mv file_from file_to
-
查看每次提交的简略的统计信息
git log --stat
- 将每个提交放在一行显示
git log --pretty=oneline
- 最终你只会有一个提交 - 第二次提交将代替第一次提交的结果
git commit -m 'initial commit'
git add forgotten_file
git commit --amend
- 取消暂存 mytext.txt 文件
git reset HEAD mytext.txt
- 撤消之前所做的修改
git checkout -- mytext.txt
- 显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL
git remote -v
- 把当前工作的改变隐藏起来
git stash
- 来查看已存在更改的列表
git stash list
- 从堆栈中删除更改并将其放置在当前工作目录中
git stash pop
-
用Git复位移动头指针[--mixed选项的Git重置将从尚未提交的暂存区域还原这些更改。它仅从暂存区域恢复更改。对文件的工作副本进行的实际更改不受影响]
-
用Git复位移动头指针[--soft选项后跟提交ID的Git reset命令,那么它将仅重置HEAD指针而不会破坏任何东西]
-
用Git复位移动头指针[--hard选项与Git重置命令,它将清除分段区域; 它会将HEAD指针重置为特定提交ID的最新提交,并删除本地文件更改]
-
查看所有可用的标签
git tag -l
- 创建标签
git tag -a 'Release_1_0' -m 'Tagged basic string operation code' HEAD
-
创建标签[如果要标记特定提交,则使用相应的COMMIT ID而不是HEAD指针]
-
将标签推送到远程存储库
git push origin tag Release_1_0
-
git show命令后跟其标签名来查看有关标签的更多详细信息
-
从本地以及远程存储库中删除标签
git tag -d Release_1_0
git push origin :Release_1_0
- 创建一个新的分支,并立即切换到新分支
git checkout -b test_branch
-
git branch命令提供-D选项来删除分支
-
使用-m选项后跟旧的分支名称和新的分支名称来更改/重新命名分支名称
git branch -m new_branch wchar_support
- 合并两个分支
git merge origin/wchar_support
- 对于Windows系统,可以将Git客户端配置为将行结束符转换为CRLF格式,同时退出,并在提交操作时将其转换回LF格式
git config --global core.autocrlf true
- 对于GNU/Linux或Mac OS,我们可以配置Git客户端,以便在执行结帐操作时将线结束从CRLF转换为LF
git config --global core.autocrlf input
- 本地分支和远程分支没有关联的解决方法就是使用--set --upstream跟踪远程分支即可
git branch --set-upstream origin/local_branch local_branch
- git强制覆盖:
git fetch --all
git reset --hard origin/master
git pull
- git强制覆盖本地命令(单条执行):
git fetch --all && git reset --hard origin/master && git pull
- git 强制合并分支
git checkout master //切换分支至master分支
git reset -hard develop //并将master分支重置为develop
git push origin master -force //将重置后的master分支强制推送更新
- 撤销本地所有的修改
git reset -hard "HEAD^"
- git 查看当前版本管理文件
git ls-files
- git 忽略已跟踪文件的修改
git update-index --assume-unchanged /path/to/file #忽略跟踪 git update-index --no-assume-unchanged /path/to/file #恢复跟踪
- 配置一下让GIT记住密码账号
git config --global credential.helper store //在Git Bash输入这个命令就可以了