$ git init //初始化一个Git仓库
$ git add <file> //从工作区添加某个文件到暂存区
$ git add . //添加全部文件
$ git status //查看当前仓库状态
git status命令可以列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提交(git commit)的文件.。
比如;
git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: 2.txt
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: 1.txt
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# 1.log
命令中”Changes to be committed“中所列的内容是在Index中的内容,commit之后进入Git Directory。
命令中“Changed but not updated”中所列的内容是在Working Directory中的内容,add之后将进入Index。
命令中“Untracked files”中所列的内容是尚未被Git跟踪的内容,add之后进入Index
$ git commit -m 'introduction' //从暂存区提交到分支
$ git log --pretty=oneline //查看提交历史
$ git reset --hard HEAD^ //回到上个版本
$ git reset --hard <commit id> //回到某个版本
$ git reflog //查看命令历史,可查看commit id
$ git checkout -- readme.txt //丢弃工作区的修改,让这个文件回到最近一次git commit或git add时的状态,git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”
$ git reset HEAD file //把暂存区的修改撤销掉(unstage),重新放回工作区
$ git rm test.txt //删除文件
$ git push origin branchname
$ git clone <url> //克隆本地库
$ git checkout -b dev //创建dev分支,然后切换到dev分支
$ git checkout -b dev origin/dev //创建dev分支,切换到dev分支,并且拉下远程dev分支代码
$ git branch dev //创建dev分支
$ git checkout dev//切换到dev分支
$ git branch //查看当前分支
$ git merge dev //合并指定分支到当前分支
$ git branch -d dev //删除dev分支
$ git branch -m oldBranchName newBranchName //修改当前分支名
合并修改
$ git rebase origin
rebase的过程中会先取消当前分支的commit暂存起来,将origin最新的代码更新到当前分支,然后再将当前分支的commit作用上来,此时可能需要处理冲突,一个冲突处理后可继续作用余下的commit
$ git rebase --continue
commit时出现 warning: LF will be replaced by CRLF in **file.
原因:换行方式不统一
解决方法:git config –global core.autocrlf false //取消Git的自动替换 换行方式 的选项