配置身份
git config --global user.name "xxx" git config --global user.email "xxxx@qq.com"
(配置一次即可,即便关闭窗口再打开也不用配置)
查看身份
git config --global user.name git config --global user.email
给项目建立一个代码仓库
进入到那个项目的目录下,输入git init
仓库创建完成后会在那个项目的根目录下生成一个隐藏的.git文件夹
可以通过输入ls -al
来查看到这个文件
如果想要删除本地仓库,只需要删除这个文件夹就行了提交本地代码到暂存区
git add XXX #提交某个文件,需要带有文件的后缀 git add XXX #提交某个文件夹 git add . #提交这个目录下的所有文件
(注意git add 已经可以记录删除的动作)
输入完成后还需要再次输入git commit -m "描述内容"
来确定提交(一定要通过-m参数来加上提交的描述信息,没有描述信息的提交被认为是不合法的)忽略文件
输入touch .gitignore
然后在文件中编辑需要忽略的文件或文件夹
例如
bin/
gen/查看提交记录
git log git log --pretty=oneline #简略显示提交记录
版本回退
git reset --hard HEAD^ git reset --hard 版本号
在Git中,用
HEAD
表示当前版本,也就是最新的提交的id(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
(注意:当回退到某个版本时,在回当前版本(即回退后的版本)之后提交的所有版本记录将不再记录在log中,如果想从过去回到未来,只需退回那个版本的版本号即可,如果窗口关闭了看不到之前操作的版本号,可以通过git reflog
查看)查看修改文件
git status
在未将工作区的修改保存到暂存区时,是工作区与版本库作比较(容易出现无法跟踪状态,因为版本库中无新增加的文件)
在工作区的修改保存到暂存区后,是暂存区与版本库做比较
(出现无法跟踪状态时,只需保存到暂存区即可)
如果保存到暂存区后,工作区又进行了修改,则会暂存区的更改和工作区的更改都会显示。查看文件被修改的内容
git diff xxx #查看某文件的详细修改内容,工作区与暂存区比较(如果修改保存进了暂存区,则不会有返回信息) git diff . #查看所有文件的详细修改内容 git diff --cached #是暂存区(stage)和分支(master)的比较 git diff HEAD -- readme.txt #工作区和最新分支比较(文件名前保留空格)
撤销未提交的修改
git checkout -- file
两种情况:一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。撤销提交后的修改
git reset HEAD file
可以把暂存区的修改撤销掉(unstage),重新放回工作区,工作区回到上一次的模样。然后再使用
git checkout -- file
进行撤销撤销提交,并使文件回到上一次的提交的内容
git reset --hard HEAD~
撤销提交,并重新提交(这一步不会修改磁盘上的文件,仅仅只是撤销提交。放心使用!)
git reset HEAD~ git add . git commit -m "内容"
删除文件并提交到暂存区
git rm file
相当于两个步骤:手动删除了文件,然后
git add .
添加远程仓库并提交(-u是第一次提交,将本地和远程关联起来)
git remote add origin git@github.com:用户名/仓库名.git git push -u origin master
提交到远程仓库
git push origin master
从远程仓库拉取(在已关联的条件下)
git pull