git基本命令
一、初次运行 Git 前的配置
用户信息
当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
如果使用了 --global
选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global
选项的命令来配置。
检查配置信息
如果想要检查你的配置,可以使用 git config --list 命令来列出所有 Git 当时能找到的配置。
你可以通过输入 git config <key>: 来检查 Git 的某一项配置
git config user.name
二、获取 Git 仓库
在现有目录中初始化仓库
git init
git add *.c
git add LICENSE
git commit -m 'initial project version'
克隆现有的仓库
git clone https://github.com/libgit2/libgit2
git clone https://github.com/libgit2/libgit2 mylibgit
检查当前文件状态
git status
跟踪新文件
使用命令 git add 开始跟踪一个文件。 所以,要跟踪 README 文件,运行:
git add README
暂存已修改文件
git add CONTRIBUTING.md
查看提交历史
git log
一个常用的选项是 -p,用来显示每次提交的内容差异。 你也可以加上 -2 来仅显示最近两次提交:
git log -p -2
用 oneline 将每个提交放在一行显示
git log --pretty=oneline
加commit号,单独查看此次版本的日志
git show
撤消对文件的修改
git checkout -- <file>
查看当前所有修改
git diff filename
查看某个文件修改记录
git blame 文件名
取消暂存的文件
git reset HEAD <file>
交后发现忘记了暂存某些需要的修改,可以像下面这样操作:
git commit -m 'initial commit'
git add forgotten_file
git commit --amend
版本回退
git reflog 查看commit_id记录
git reset --hard commit_id
取消提交
git reset --soft HEAD^
git reset --hard HEAD^ //add也撤销了
HEAD^ 表示上一个版本,即上一次的commit,几个^代表几次提交,如果回滚两次就是HEAD^^。
也可以写成HEAD~1,如果进行两次的commit,想要都撤回,可以使用HEAD~2。
--soft
不删除工作空间的改动代码 ,撤销commit,不撤销add
--hard
删除工作空间的改动代码,撤销commit且撤销add
如果commit后面的注释写错了,先别急着撤销,可以运行git commit --amend
进入vim编辑模式,修改完保存即可
查看远程仓库
可以指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL
git remote -v
从远程仓库中抓取与拉取
git pull
推送到远程仓库
git push
三、git分支管理
1、查看本地分支
git branch
2、查看远程分支
git branch -r
3、查看所有分支
git branch -a
4、新建一个分支,但依然停留在当前分支
git branch [branch-name]
5、新建一个分支,并切换到该分支
git checkout -b [branch]
6、新建一个分支,指向指定commit
git branch [branch] [commit]
7、新建一个分支,与指定的远程分支建立追踪关系
git branch --track [branch] [remote-branch]
8、切换到指定分支,并更新工作区
git checkout [branch-name]
9、切换到上一个分支
git checkout -
10、建立追踪关系,在现有分支与指定的远程分支之间
git branch --set-upstream [branch] [remote-branch]
11、合并指定分支到当前分支
git merge [branch]
12、选择一个commit,合并进当前分支
git cherry-pick [commit]
13、删除分支
git branch -d [branch-name]
14、删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]
如果冲突了,你可以先 git stash 然后执行git pull 然后在git stash pop ,这样本地会显示冲突
意思就是先备份本地,然后拉取最新,然后在恢复备份。这样会在本地显示出来冲突文件项,解决完后再提交上来就行了