配置用户名和邮箱
-
git config --global user.email "you@example.com"
git config --global user.name "Your name"
会在当前用户下生成一个.gitconfig
- 设置邮箱的作用
github会自动识别邮箱,把这次提交的名字和头像改成和这个邮箱相对应的用户的名字和头像
- 设置邮箱的作用
-
git config user.name 名字
git config user.email 邮箱
remote命令
- 给远程仓库起一个别名
$ git remote add 别名 远程仓库地址.git
- 查看当前所有的别名
$ git remote show
- 查看详细信息
$ git remote show XXX
- 远程仓库的别名
$ git remote
push命令
git push --set-upstream XXX master
记住这次的提交地址,下次就可以直接git push
add命令
- 添加所有的文件到暂存区
$ git add --all
或者是git add .
rm命令
- 在工作区的文件直接删除就可以
- 在暂存区或分支上的文件:
在工作区不需要这个文件了:使用git rm file
在工作区需要这个文件,只是不希望这个文件被版本控制:git rm --cached file
mv命令
- 改名文件,并将这个改名放入暂存区
$ git mv [file-original][file-renamed]
查看状态
git status
commit命令
$ git commit -a -m "XXXX"
查看日志信息
$ git log
后面的字符串就是每一次提交的版本号
- 恢复某个commit的指定文件到暂存区和工作区
$ git checkout [commit][file]
可以使用整个版本号,也可以只使用五位,基本上不会有重复
- 重置当前HEAD为指定commit,但保持暂存区和工作区不变(HEAD是顶部的那个版本)
$ git reset --keep [commit]
克隆(clone)
git clone 链接.git
- 克隆下来的时候该名字
git clone 链接.git 名字
分支管理
- 列出本地所有的分支(至少有一次提交才可以看到master分支)
git branch
- 基于当前分支新建一个分支,但依然停留在当前分支
git branch [branch-name]
- 基于当前分支新建一个分支,并切换到该分支
git checkout -b [branch]
- 切换到指定分支,并更新工作区
git checkout [branch-name]
- 切换到上一个分支
git checkout -
- 合并指定分支到当前分支
git merge [branch]
- 删除分枝(删除的前提是不要处于要删除的分支)
git branch -d [branch-name]
- 如果一个分支和master修改了同一个地方,且master没有进行commit,是不能将另一个分支merge到master的
如果master进行了commit,使用merge会将两个改动都保存到文件中去
head表示master最新版本,下面表示另一个分支最新版本,可以手动解决冲突
在master分支解决了冲突之后,想让两者同步
合并的时候合并的是版本,如果这个版本之前就跟master合并过,那么