git clone
git clone url拷贝一个 git 仓库到本地
git pull
git pull获取远程分支并合并到当前分支
git push
-
git push将本地仓库代码推到远程仓库 -
git push remoteName branchName将本地仓库代码推到 remoteName 远程仓库中的 branchName 分支 -
git push --set-upstream remoteName branchName在 remoteName 远程仓库创建 branchName 分支,并将当前仓库当前分支的代码推到新建的分支中 -
git push remoteName -d branchName删除 remoteName 远程仓库中的 branchName 分支
git branch
-
git branch显示本地分支 -
git branch -a显示所有分支,包括本地分支和远程分支 -
git branch -d branchName删除 branchName 分支 -
git branch -D branchName强制删除 branchName 分支
git remote
-
git remote查看已经配置的远程仓库服务器 -
git remote -v显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL -
git remote add <shortname> <url>添加一个新的远程 Git 仓库,同时指定一个别名 -
git remote show remoteName查看 remoteName 远程仓库的详细信息
git checkout
-
git checkout branchName切换到 branchName 分支 -
git checkout -b branchName从当前分支创建新分支 branchName,并切换到该分支 -
git checkout -b [branch] [remotename]/[branch]创建本地分支跟踪远程分支
git add
-
git add filePath添加指定文件到缓存区 -
git add .将所有改动添加到缓存区
git commit
-
git commit -m"commit message"将暂存区代码添加本地到仓库中 -
git commit -am"commit message"git add 和 git commit 的合成命令,将工作区所有文件的更改添加到缓存区同时提交到仓库
git merge
git merge branchName合并 branchName 分支到当前分支
git status
-
git status查看上次提交之后是否有修改 -
git status -s查看简短的输出结果
git log
-
git log显示提交日志 -
git log -p显示提交日志以及每次提交所对应的代码变动 -
git log -n显示 n 个 commit 的日志 -
git log --pretty=format:'%h %s' --graph图示提交日志
git reset
-
与
git add相对的,git reset可以将添加到暂存区的文件还原到工作区:-
git reset filePath还原指定文件 -
git reset .还原所有文件
-
-
git reset还有回退版本的功能:-
git reset --hard HEAD^将当前版本回退到上一个版本HEAD代表当前版本,HEAD^代表上一个版本,托字符^可以用来表示回溯版本的个数,写几个就回溯几个版本。但如果我们要回溯80个版本,git 也不会让我们就真的傻乎乎的写80个^,这时可以这么写HEAD~80。 -
git reset --hard commitId还可以回退到指定版本:其中 commitId 可以不用写全,写前几位就好,git 会帮我们自动去找。但也不能只写两三位,如果匹配到多个 commitId 的话 git 就不知道我们要回退到哪一个了。
-
git rebase
-
git rebase branchName将当前分支变基到 branchName 分支更多内容可查看 Rebase 代替合并
git fetch
git fetch获取所有远程分支(不自动合并)
git tag
-
git tag查看所有的标签 -
git tag newName创建一个轻量级的标签 -
git tag -a newName -m"annotate"创建一个带注释的标签 -
git tag -d tagName删除某个标签 -
git checkout tagName切换到某个标签 -
git tag -l查看所有标签 -
git show tagName查看该标签的信息tag 指向的是一次 commit,show tagName 命令展示出来的 diff 也是该次 commit 的
-
git push --tags将本地的标签推到远程默认情况下,
git push不会将标签上传到远程服务器,为了共享这些标签,须在git push后加--tags选项
git stash
-
git stash将工作区和暂存区的代码临时储存起来,每 stash 一次就在储存栈的顶部新增一个储存项 -
git stash list查看当前储存栈 -
git stash pop恢复储存栈顶部的储存项,同时将其从储存栈中移除 -
git stash show / git stash show stashName查看顶部或指定储存项的简要 diff 信息,增加参数-p可以查看详细 diff 信息 -
git stash drop / git stash drop stashName删除储存栈顶部或指定的储存项,可以使用 git stash list 查看 stashName -
git stash clear清除储存栈中所有储存项 -
git stash apply/git stash apply stashName恢复顶部或目标储存项,但不从储存栈中删除它
git config
-
git config user.name查看本地用户名 -
git config user.email查看本地用户邮箱地址 -
git config --global user.name "username"修改本地用户名 -
git config --global user.email "email-address"修改本地用户邮箱地址
如果发现将某些文件加入 gitignore 的忽略规则之后未生效,原因可能是:.gitignore 只能忽略那些原来没有被 track 的文件,如果某些文件已经被纳入了版本管理中,则修改 .gitignore 文件是无效的,解决方法就是把本地缓存删除(改变成未 track 状态),然后再提交:
1
2
3
git rm -r --cached .
git add .
git commit -m "update .gitignore"