1.初始化自己的git项目
mkdir firstGit
cd firstGit
git init
在firstGit下创建自己的文件然后执行如下提交操作
git add 你的文件名
git commit -m '修改描述'
查看修改记录:
git log
或是
git reflog
查看当前的状态包括冲突状态:
git status
版本回退:
git reset --hard HEAD^ // 回退到上一个版本
git reset --hard HEAD^^ // 回退到上上个版本
git reset --hard HEAD~100 // 回退到上100个版本
git reset --hard 版本号// 1094a应为git log中需要回退的制定版本的版本号
当你改乱了工作区某个文件的内容企且未提交到暂存区时,想直接丢弃工作区的修改时,用命令
git checkout -- 文件名
当你改乱了工作区某个文件的内容企且提交到暂存区时,想丢弃刚才的修改时,用命令
git reset HEAD 文件名 // 撤销暂存区的文件修改
git checkout --文件名 // 丢弃当前工作区的修改
删除文件:
git rm 文件名 // 删除文件
git commit -m '描述' // 将删除操作添加进去
远程库 github
连接github
git remote add origin [email protected]:michaelliao/learngit.git
// 其中origin为远程库的名字,michaelliao为你的github名字,learngit.git为你的项目名称
将内容推送到github
git push -u origin master
//由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git
//不但会把本地的master分支内容推送的远程新的master分支,还会把本地
//的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
从现在起只要本地做了修改,只需要执行如下命令,便可以将本地修改提交到远程库
git push origin master
从远程库克隆项目
git clone [email protected]:michaelliao/learngit.git
// git@后跟的是在github上的项目地址(ssh)
//还可以跟https地址,但是速度回相对变慢
分支管理
查看分支:
git branch
创建分支:
git branch
切换分支:
git checkout
创建+切换分支:
git checkout -b
合并某分支到当前分支:
git merge
//使用Fast forward模式进行合并,无合并记录
删除分支:
git branch -d
git merge --no-ff -m "merge with no-ff"
//准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward,有合并记录
保存当前现场的工作状态,(适用于临时解决其他bug需要新建一个分支的情况)
git stash // 保存当前现场,使用git status就不会看到有任何需要提交的文件
查看保存的现场列表
git stash list
恢复到制定的现场
git stash apply 现场列表的某个列的名称
但是执行上面的命令后,stash并没有删除需要执行如下命令删除
git stash pop 现场列表的某个列的名称
如果只有一个保存现场
git stash pop // 即可实现恢复现场并删除列表信息
将远程主机的某个分支拉去过来与本地分支合并
git pull <远程主机名> <远程分支名>:<本地分支名>
git pull origin master:brantest
拉取远程主机的内容
git fetch <远程主机名> <分支名>// 拉取分支brantest分支的内容
git fetch origin dev // 拉取分支dev上的内容
git fetch //拉取所有的分支更新
windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时出现提示,解决办法:
git config --global core.autocrlf false //禁用自动转换