一、全局配置
Git 的设置文件为 .gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。
1 2 3 4 5 6 7
| $ git config --list //显示当前的Git配置 $ git config -e [--global] //编辑Git配置文件 $ git config [--global] user.name "[name]" //设置提交代码时的用户名字 $ git config [--global] user.email "[email address]" //设置提交代码时的用户地址
|
二、创建 SSH Key
由于本地的 Git 仓库和 Github 仓库之间的传输是通过 SSH 加密。在用户的主目录下,看看有没有 .ssh 目录,如果有,再看看目录下有没有 id_rsa 和 id_rsa.pub 文件,id_rsa.pub文件的内容就是 Key, 如果已经有了,可直接跳到下一步。没有则:
1
| ssh-keygen -t rsa -C "xxxxxx@xx.com"
|
三、创建版本库
1 2 3 4 5 6
| $ git init //在当前目录新建一个Git代码库 //此时当前目录下多了一个.git的目录,这个目录是来跟踪管理版本库的。 $ git init [project-name] //新建一个目录,将其初始化为Git代码库 $ git clone [url] //下载一个项目和它的整个代码历史
|
四、远程库
添加后远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道远程库。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| $ git remote add origin git@github.com:sid/learngit.git //把本地的仓库和刚刚创建的Github仓库关联 $ git clone git@github.com:sid/gitskills.git // 克隆远程库 $ git remote rm origin // 删除远程库origin $ git fetch [remote] // 下载远程仓库的所有变动 $ git remote -v // 显示所有远程仓库 $ git remote show [remote] // 显示某个远程仓库的信息 $ git remote add [shortname] [url] // 增加一个新的远程仓库,并命名 $ git pull [remote] [branch] // 取回远程仓库的变化,并与本地分支合并 $ git push [remote] [branch] // 上传本地指定分支到远程仓库 $ git push [remote] --force // 强行推送当前分支到远程仓库,即使有冲突 $ git push [remote] --all //推送所有分支到远程仓库
|
五、添加/删除文件
1 2 3 4 5 6 7
| $ git add README.md //添加指定文件到暂存区 $ git add -A //添加当前目录的所有文件到暂存区 $ git rm README.md //删除工作区文件,并且将这次删除放入暂存区 $ git mv [file-original] [file-renamed] //改名文件,并且将这个改名放入暂存区
|
六、代码提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| $ git commit -m 'first commit' //提交暂存区到仓库区 $ git commit -a //提交工作区自上次commit之后的变化,直接到仓库区 $ git commit -v //提交时显示所有diff信息 $ git commit --amend -m [message] //使用一次新的commit,替代上一次提交 //如果代码没有任何新变化,则用来改写上一次commit的提交信息 $ git commit --amend [file1] [file2] //重做上一次commit,并包括指定文件的新变化 ``` 七、撤销修改 --- ```bash $ git checkout [file] // 恢复暂存区的指定文件到工作区 $ git checkout . // 恢复暂存区的所有文件到工作区 $ git reset [file] // 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变 $ git reset --hard // 重置暂存区与工作区,与上一次commit保持一致
|
八、分支
1 2 3 4 5 6 7 8 9 10 11
| $ git branch // 列出所有本地分支 $ git branch -r // 列出所有远程分支 $ git branch -a // 列出所有本地分支和远程分支 $ git branch [branch-name] // 新建一个分支,但依然停留在当前分支 $ git checkout -b [branch] // 新建一个分支,并切换到该分支 $ git merge [branch] // 合并指定分支到当前分支
|
九、查看信息
1 2 3 4 5 6 7 8 9
| $ git status // 显示有变更的文件 $ git log // 显示当前分支的版本历史 $ git log --stat // 显示commit历史,以及每次commit发生变更的文件 $ git diff //显示暂存区和工作区的差异 $ git diff HEAD // 显示工作区与当前分支最新commit之间的差异
|