git上注册账号
将git上文件克隆到本地环境
- 新建一个项目
mkdir test 新建一个项目
cd test 进入到这个项目
- 初始化一个项目
通过git init
命令把这个目录变成Git可以管理的仓库。完成之后,当前目录下会生成一个.git文件。若没有看到,那是因为这个目录默认是隐藏的,用ls -ah
查看 - pwd显示当前目录。 如果是windows系统,为了避免错误,应确保目录名(包括父目录)不包含中文。
添加文件到git仓库
第一步: 使用命令
git add <file>
,注意,可反复多次使用,添加多个文件;
注:git仅仅跟踪文件的变动,不跟踪目录。所以,一个空目录,如果里面没有文件,即便 git add 这个目录,另外在别处 check out 的时候,是没有这个空目录的。第二步:使用命令
git commit -m <file>
,加-m '描述',是添加对本次修改的描述
查看文件状态
- git status 命令
该命令可以让我们时刻掌握仓库当前的状态
- git diff 可以查看修改内容
版本回退
- git log 命令显示从最近到最远的提交日志。如果嫌输出的信息太多,看得眼花缭乱,可以加上--pretty=oneline
- git reset 返回以前版本,如:git reset --hard HEAD^返回上一版本
如果又想回到返回前的版本,只要上面的命令行窗口还没有被关掉,找到被返回版本的commit id ,然后git reset --hard 34538...
- git reflog 用来记录每一次命令,可以找到每次的commit 的id,然后恢复需要的版本。
撤销修改
- git checkout -- file(撤销修改的文件名)
- 一种是文件自修改后还没被放到暂存区,把文件在工作区的修改全部撤销到和版本库一模一样的状态
- 一种是文件已经添加到暂存区后,又做了修改,现在,撤销修改就是回到添加暂存区后的状态,
- 总之,就是让文件回到最近一次git commit 或git add时的状态
- git reset HEAD file 撤回暂存区的修改,重新放回工作区
(HEAD表示最新的版本)
删除文件
- rm file 删除文件
- 删除的是工作区的文件,若想和版本库一样,则还需进行下面命令
- git rm file 和 git commit -m 'remove file'
远程仓库
注册github账号之后,需要先设置ssh加密
-
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可 第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容
添加到远程仓库
在右上角找到“Create a new repo”按钮,创建一个新的仓库:
在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:
在本地的仓库下运行命令进行关联:
git remote add origin git@github.com:michaelliao/learngit.git
把上面的michaelliao替换成你自己的GitHu,
若提示已经存在,git remote rm origin
删除-
本地库的所有内容推送到远程库上:
- 先把远程上的READER.md文件,下载到本地仓库
git pull --rebase origin master
-
git push -u origin master
//把当前分支master推送到远程 - 完成之后 本地再作提交,执行:
git push origin master
// 把本地master最新修改推送至GitHub
- 先把远程上的READER.md文件,下载到本地仓库
当输入 git push -u origin master
若提示:error:failed to push som refs to.......
,
解决办法:git pull origin master //先把远程服务器github上的文件拉下来,再push上去
当执行:git pull origin master
时,提示:fatal: refusing to merge unrelated histories
**解决办法:git pull origin master --allow-unrelated-histories
若再报错 用git status 查看下状态 **
再执行
git push -u origin master
-
克隆一个本地库
git clone git@github.com:michaelliao/learngit.git
分支管理
- 查看分支:
git branch
- 创建分支:
git branch <分支name>
- 切换分支:
git checkout <分支name>
- 创建+切换分支:
git checkout -b <分支name>
- 合并某分支到当前分支:
git merge <name>
//合并指定分支到当前分支 - 删除分支:
git branch -d <name>
在分支上修改,其他分支不受影响