基础
- 工作区:自己的文件所在的目录
- 版本库:包括暂存区和分支
- **
git init
**在A路径下使用这个命令,就在A路径下创建一个隐藏的.git文件,用于管理A路径下的文件。 git init --bare
:使这个文件夹成为共享代码库。git clone 路径
:在github上想clone某个库的时候,路径可以是库的https或者ssh路径(ssh路径需要对应的秘钥)git add 文件名字1 文件名2
:将某个文件添加到暂存区,可以一次将多个文件添加到暂存区。git add .
:将工作区中所有未添加到暂存区的文件添加到暂存区。git commit -m "本次提交的注释"
:将暂存区的文件提交到仓库,一次commit会将暂存区所有的文件提交的仓库。git status
:显示当前仓库的所处的状态。git diff
:显示修改的内容。git reflog
:查看所有的历史git命令git rm 文件名
:删除某个文件。
日志log
git log
:显示提交的日志。git log --pretty=oneline
:显示单行样式的日志。git log --graph --pretty=oneline --abbrev-commit
:显示图形的单行的简略样式的日志。
回滚reset
git reset --hard HEAD
:会退到当前版本,即所有的此次所有的修改都没有了。git reset --hard HEAD^
:回滚到删一个版本,两个^就是回滚到前两个版本,HEAD~3:往前回滚三个版本,–hard是表示强制回退到某个版本。git reset HEAD file
:既可以回退版本,也可以把暂存区的修改回退到工作区,HEAD表示最新的版本。
git reset --hard 某个commit id
:回滚到某个commit对应的版本。git checkout -- 文件名
:用版本库中的指定文件替换工作区中的文件, 文件替换必须有–,没有–就是切换到另一个分支。
分支branch
git branch 分支名
:创建分支。git branch
:查看当前处于哪个分支。git checkout 分支名
:切换到某个分支。git checkout -b 分支名
:创建并切换到分支。git merge 分支名
:合并某分支到当前分支。git branch -d 分支名
:删除某个分支。git config alias.st "status"
:给status命令起一个别名,即以后可以用git st 代替 git status。git config --global alias.st "status"
:配置全局的变量。
git@github.com出现Permission denied (publickey)
当有多个代码托管平台,比如github、coding等,电脑中有多个公私秘钥的时候。例如创建了id_rsa_github的秘钥。这需要使用ssh-add ~/.ssh/id_rsa_github
添加到ssh中。但是这种方法只是临时的授权ssh。
可以在.ssh目录下的config 文件中配置 如下内容
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github // github对应的公钥
# coding.net
Host git.coding.net
User 859969202@qq.com // coding 对应的邮箱
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_coding_859969202 // coding平台对应的公钥
检测某个平台ssh公钥是否配置成功 ssh -T git@github.com
查看加入的秘钥的列表 ssh-add -l
查看调试信息 ssh -v git@github.com
原图地址:http://www.liaoxuefeng.com/files/attachments/001384907702917346729e9afbf4127b6dfbae9207af016000/0