1.初始化
git config --global user.name +名字 改命名重复执行该句的话后执行的会覆盖前面执行的 , 如果不同的增加方法则不会覆盖
给命令起别名:
3.ssh公钥
ssh-keygen -t rsa -C "442484635@qq.com"
查看是否成功:
ssh -T git@git.oschina.net
4.强行更新代码
(1)git fetch --all
(2)git reset --hard origin/分支名
(3)git pull
5.
git status -s
查看已经add的文件
(1)git reset HEAD 文件名
如果add了某文件 , 可以用该命令取消add该文件(从历史记录还原了暂存区)
git rm --cached 文件名 让状态恢复到连 add 也没有过的时候(清空了暂存某文件的内容)
或者git rm --cached 文件名
删除暂存区已add的文件,这样就相当于没提交了
(2)
如果删除了某文件 (已commit才能被rm删除的) git rm 文件名
git checkout 文件名 可以用`git reset HEAD 文件名`命令+(2)命令还原文件
===============================================================
git checkout -- 文件名 撤销工作区修改的文件 , 如果前面已经add到暂存区(未提交comiit)相当于从暂存区还原覆盖工作区,如果没add到暂存区 , 则从历史记录还原覆盖工作区(意思就是用前面最后一次add的暂存区(已提交commit)还原工作区)
最新:撤销暂存add `(使用 "git reset HEAD <文件>..." 以取消暂存)`
git reset --hard HEAD
//把全部更改的文件都恢复(小心使用,不然辛辛苦苦写的全没了)
6.撤销已commit的
保存修改 git log
git reset --soft commitid/HEAD@{编号}
(不替换 , 所以保存修改,只撤销commit,不撤销add)
保存修改 git log
git reset --mixed commitid/HEAD@{编号}
(用其他commit的内容替换了暂存区,也就是把前面的git add和git commit操作撤销)
不保存修改 git reset --hard commitid/HEAD@{编号}/HEAD~
/git revert HEAD
(用其他commit的内容替换了工作区和暂存区,把前面的git add和git commit操作撤销,并且把工作区的内容也还原成上一个commit的内容)
7.git diff
查看工作区和缓存区的差别
git diff --cached 查看缓存区发生的修改
8.git commit --amend
修改上次提交的错误信息并覆盖提交信息
9.分支上合并: git rebase master
合并到分支上
有冲突的话修改后git add 文件名
git rebase --continue
继续合并
切回master:git merge +分支名
10.拉取代码:git pull origin ==git fetch origin+git merge origin/master
git fetch后可以用git diff master origin/master查看修改的代码
-
远程库
git remote 查看关联的远程库
git remote rm +库名 删除某个远程库
git remote add origin +远程库地址(建议ssh协议) 关联一个远程库,起名为origin -
Git提供了一个命令
git reflog
用来记录你的每一次命令 -
清除缓存密码:
git config --system --unset credential.helper
-
下面命令会将下次弹框的账号和密码保存起来,永久使用。
git config --global credential.helper store
15.github无法访问的解决方法
在hosts文件中加入下列IP,保存即可生效
192.30.253.113 github.com
192.30.253.113 github.com
192.30.253.118 gist.github.com
192.30.253.119 gist.github.com