目录
1 GitHub常用命令
操作
操作
创建本地仓库
git init
将目录下所有文件保存至缓存区
git add .
将代码从缓存区保存至本地仓库
git commit -m “xxxxx”
将本地仓库与指定的远程仓库创建联系
git remote add origin https://github.com/xxx.git
设置为master分支
git branch -m master
将本地仓库代码推送至远程master仓库
git push -u origin master
创建分支仓库及切换分支
git branch mybranch
git checkout mybranch
将本地分支仓库创建到远程仓库origin
git push origin localBranchName:remoteBranchName
将本地分支仓库推送到origin远程仓库的指定分支
git push origin remoteBranchName
合并指定分支到当前分支
git merge targetBranchName
将远端仓库的内容更新到当前分支
git rebase remoteBranchName
直接从远程主分支更新代码
git pull
git pull origin master
在本地同步其他远程分支
git checkout -b 本地分支名 origin/远程分支名
添加远程仓库
git remote add <name> <url-of-remote>
取消本地目录下关联的远程库
git remote remove origin
推送到远程仓库的指定分支
git push <name of remote repository> <name of branch>
创建本地副本
git clone <版本库的URL> [本地目录名]
在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git fetch origin master:temp
将远程仓库origin的master分支拉取过来,与本地的locBranch分支合并
git pull origin master:locBranch
== git git fetch origin master:temp+git checkout locBranch+git merge temp
删除本地分支
git branch -D locBrName
删除远程分支
git push remoteRepoName --delete remoteBrName
git push remoteRepoName :remoteBrName
查看
查看本地仓库状态,查看自上次提交之后更改的文件及没有加入缓冲区的文件
git status
查看(本地已知的)所有分支
git branch -al
查看当前(本地已知的)分支提交日志
git log --oneline
查看项目(本地已知的)每个分支的历史提交记录
git log --graph --all --decorate --oneline
查看(本地已知的)目前关联的远程仓库
git remote -v
查看git设置
git config --list
git config --local --list
查看某个远程仓库的详细信息
git remote show [remote-name]
更新本地的origin仓库的远程分支列表
git remote update origin --prune
2 GitHub命令及用法说明备查
2.1 config
config——配置用户信息
因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
git config --global 参数包括user.name user.email信息,使用这个参数的所有的Git仓库被唯一标识。
git config --global user.name ""
git config --global user.email ""
2.2 init
通过命令 git init 在当前的项目目录中生成本地的git管理,把当前目录变成git可以管理的仓库。
这时候当前目录下产生一个.git的目录,这个目录是git来跟踪管理版本的,不能擅自修改,否则,会把git仓库给破坏了。
git init
2.3 commit
通过命令git status,git会告诉什么文件被修改了但尚未缓存,什么文件可能需要被提交,它将返回已更改的文件,或者是自上次提交之后添加的新文件。
git status
为了接受这些更改,并让它们准备好被提交,需要使用命令git add命令,这将把它们放入被称为暂存区的持久化容器中。可以通过git status查看状态的更新。
每次提交更改都必须经过暂存区,这是git架构的一个关键部分。
git add fileName
通过命令git commit将更新提交到仓库,使用-m "description"对提交的更新进行描述,以便他人和未来的自己理解更新内容。
git commit -m "description"
2.4 diff
通过命令git diff,会得到工作树的精确描述,得到当前本地项目与暂存区的不同。
git diff
通过参数–staged,会得到暂存区与最近提交的历史文件的不同。
git diff --staged
通过参数HEAD,会得到当前本地项目与最后一次提交的历史文件的不同。
git diff HEAD
通过参数–color-words、–word-diff,查看更细节的改动,能更好地查看长行的小改动。
git diff --color-words
git diff --word-diff
通过参数–stat,仅查看被改动的文件。
git diff --stat
2.5 log
通过命令git log查看历史提交记录,显示从最近到最远的提交日志。
git log
通过参数–stat查看每次提交中包含哪些文件。
git log --stat
通过参数–patch查看每次提交改变了哪些内容。按q退出。
git log --patch
通过参数–oneline来快速查看一个提交概要,包括提交信息和一个简短的标识符信息,快速查看仓库历史和项目推进过程。
git log --oneline
git log --stat --oneline
git log --patch --oneline
通过参数–graph以图方式查看历史提交记录,会提供项目每个分支的标志,以及其他提供的标志,如tags。添加更多选项–all、–decorate、–oneline可以更方便地查看。
git log --graph
git log --graph --all --decorate --oneline
2.6 reset
git reset命令用于版本回退、历史重塑
2.6.1 mixed模式
通过参数(–mixed )HEAD将移除最近暂存区的改变。
git status
git reset HEAD
git status
2.6.2 soft模式
通过参数–soft HEAD~num将最近的num次提交合并到一起。然后可以合并提交
git log --oneline
git reset --soft HEAD~num
git commit -m " "
2.6.3 hard模式
通过参数–hard HEAD^^将最近的2次提交完全丢弃,回退到前2个版本。
通过参数–hard HEAD~num将最近的num次提交完全丢弃,回退到前num个版本。
git reset --hard HEAD^
git reset --hard HEAD~5
通过参数 --hard 版本号 可以恢复到已经被丢弃的特定版本。
git reset --hard 版本号
通过命令git reflog可以获取历史版本号。
git reflog
2.7 remove
2.7.1 rm
通过命令git rm将某个文件移除,并更新缓存,一旦提交,该文件会在未来的提交中消失,但不会从历史提交中消失。
git rm filename
git commit -m "description"
2.7.2 add
将本地工作区中的一些文件删除后,通过git status可以看到哪些文件被删除了。
通过git add -u .命令可以在缓存区递归找到所有在工作区中已经被删除的文件,并将更改应用到缓存区,"."是当前工作目录的简写。
git status
git add -u .
2.7.3 rm --cached
通过git rm --cached停止追踪某个文件,但是不从文件系统中真正删除它,在工作树中保留它。
git rm --cached filename
2.8 move
2.8.1 mv
通过命令git mv将某个文件移动。
git mv oldFilePath newFilePath
这个操作等价于在本地进行mv移动,然后在缓存中以git rm删除旧文件,以git add添加新文件。
mv oldFilePath newFilePath
git rm oldFilePath
git add newFilePath
2.8.2 add -A
通过git add -A .命令可以将本地当前目录下移动过的文件(更改了或未更改,但名字不变)在缓存区自动进行更新。
git add -A .
2.8.3 git log -M --follow
通过git log --stat – filename命令可以看到文件在最后一次移动之后的历史提交。
通过添加开关-M --follow可以看到文件包括移动在内的历史提交。
git log --stat -- filename
git log --stat -M --follow -- filename