常用命令
which -a git # 查看所有版本的 git
git --version # 查看使用 git 的版本
git xxx --help # 查看 xxx 命令相关的帮助文档
git config --global alias.别名 命令 # 给命令起别名
git log --oneline --decorate --graph --all # 查看提交记录
拉取和提交操作
git clone url [name] -- 从远程主机克隆一个版本库
git pull -- 拉取远程仓库,默认为远程origin master分支
git pull origin [remoteBranchName] [localBranchName] -- 拉取远程仓库remoteName分支到本地localBranchName分支
git fetch origin remoteBranchName -- 从远程分支更新最新的版本到origin/remoteBranchName分支上,没有更新到工作区,默认情况下取回所有分支的更新
git merge origin/localBranchName -- 合并内容到本地localBranchName分支,更新到工作区
git diff master origin/master -- 比较本地的master分支和origin/master分支的差别
git status -- 列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提交( commit)的文件
git add fillname -- 把文件添加到仓库,新添加的文件必须add后提交才生效
git rm fillname -- 把文件从仓库删除,被删除的文件必须rm后提交才生效
git commit -m "description" -- 把文件提交到本地仓库
git push origin [name] -- 把所有本地提交推送到远程库name分支,默认为master分支
临时备份
git stash -- 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致,同时将当前的工作区内容保存到Git栈中
git stash pop stash@{id} -- 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容,由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复,将对应的stash id 从stash list里删除
git stash apply stash@{id} -- 与stash pop的区别是会继续保存stash id
git stash list -- 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复
git stash clear -- 清空Git栈
git stash show stash@{0} -- 查看压入Git栈的版本为0的文件列表
git stash drop -- 如果不加stash编号,默认的就是删除最新的,也就是编号为0的那个,加编号就是删除指定编号的stash
忽略文件不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如:
*.log
node_modules/
恢复操作
git reset -- 将当前的分支重设(reset)到指定的commit或者HEAD(默认,即最新的一次提交),可有--hard 或 --soft 参数
git revert filename -- 恢复指定文件
git rebase localBranchName -- 用于把localBranchName分支的修改合并到当前分支,该命令会把当前分支里的每个提交(commit)取消掉,然后把当前分支更新为最新的localBranchName分支
分支操作
git branch -- 查看本地分支
git branch -r -- 查看远程分支
git branch [name] -- 创建本地分支
git checkout [name] -- 切换分支
git checkout -b [name] [commit 引用] -- 基于指定的 commit 新建并切换到该分支
git branch -d [name] -- 删除分支,-d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的,如果想强制删除一个分支,可以使用-D选项
git merge [name] -- 将指定分支合并到当前分支
git push origin [name] -- 本地分支push到远程同名分支,远程没有该分支则创建
git push origin :heads/[name] -- 删除远程分支
git push origin :master -- 删除远程分支
git push origin --delete master -- 删除远程分支
git push origin [remoteBranchName] [localBranchName] -- 提交本地local分支作为远程的remote分支,如果没有则创建
git push --force origin -- 如果远程主机的版本比本地版本更新,可以使用--force选项,结果导致远程主机上更新的版本被覆盖
git branch --set-upstream dev origin/dev -- 指定本地dev分支与远程origin/dev分支的链接
版本操作
git tag -- 查看版本
git tag [localTagName] -- 创建版本
git push origin --tags -- 把本地tag推送到远程
git fetch origin tag <remoteTagName> -- 获取远程tag
git tag -d [localTagName] -- 删除本地tag
git push origin :refs/tags/[remoteTagName] -- 删除远程tag
git checkout tagName -- 切换到指定版本
fork的项目与原项目同步
fork一个项目并clone到本地,如果原项目已经更新了,要保持github上fork的项目和本地的项目与原项目同步,只需执行以下操作。
# 远程拉取更新项目,先将原包作为 remote 加到本地项目中,A_REPOSITORY_URL需替换
git remote add upstream A_REPOSITORY_URL
# 拉取远程代码
git pull upstream master
# 提交到自己的 fork
git push origin master
初始化项目
git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/zhulichao/react-native-hello.git
git push -u origin master











网友评论