git help (config【命令名】) 获得某个命令的详细帮助说明,例如这里获得config的详细帮助
git config --global user.ame ‘aaa’ 配置用户名
git config --global user.email ‘aa@aa.com’ 配置用户邮箱
在mysysGit 软件中配置好的这两个信息存放在C:\Users\Administrator目录下 .gitconfig文件中
mkdir test //创建一个名为test的目录
cd test //进入test目录中
git init //git初始化
add
git add index.html //这个命令有三个意思 1、让GIT跟踪index.html 2、将文件内容添加到索引(将修改添加到暂存区) 3、冲突文件标记为已解决(在合并时冲突的文件修改好后使用add添加)
git add Documentation/*.txt //添加documentation目录及其子目录下所有txt文件内容
git add *.txt //添加所有 .txt 文件内容
git add . //add后天家了个点,将所有修改添加到暂存区
git add *controller //将以controller结尾的文件所有修改添加到暂存区
commit
git commit -m ‘解释信息’ //把添加到暂存区的内容提交到版本库中,参数 -m 是本次提交的解释信息(必填项)
git commit -am ‘解释信息’ // 参数 -am 可以免去add 命令,是add和commit的结合,在修改文件内容后不用add 直接commit后加 -am参数即可
git log //查看提交记录
git log --pretty=oneline //以更容易的格式查看提交记录
git 的版本库不是以数字1、2、 3来代表的,因为git分支方式的独特性,使用1/2/3不能保证唯一性,所以git使用SHA-1算法产生唯一标识符
git status //查看项目目前的状态
git checkout – index.html //这里的checkout 也是切换分支的命令,后边加 – 文件名 就是用版本库里的文件替换工作区文件,不管是修改还是删除,都可以还原,也就是在工作区做了修改或删除操作并没有add之前可以用这个命令撤销修改
git reset head index.html //把add至暂存区还没有commit的修改,退回到工作区;
rm //使用命令行删除文件【删除目录需要加 -r 】,本地删除完后版本库 git status 查看状态会提示工作区和版本库状态不一致,这时候使用 git rm //删除版本库文件 ,删除之后需要git commit -m ‘’
ssh-keygen -t res -C ‘邮箱地址’ //生成ssh秘钥,生成后 .pub的为公钥,放在github设置中的ssh key中即可
git remote add origin git@github.com:guoguo666/guoTest.git //在本地仓库添加一个远程库,远程库名字是 origin ,后边是远程库地址
git push -u origin master //把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程,(在本地仓库添加一个远程库然后再把本地内容推送到远程通常是项目的开始,这时候远程仓是空的)这时候加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,推送成功后本地和远程仓库内容就一样了,
git push origin master //通过上文的 -u 参数把本地和远程master分支关联之后,就可以通过这个命令直接把本地最新修改推送到github
SSH警告
当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告,询问github的key的指纹信息是否是你github中的指纹信息,回复 :yes
git clone git@github.com:guoguo666/guoTest.git //克隆远程仓库到本地
git branch 分支名 //创建新分支
git checkout 分支名 //切换到分支
git checkout -b 分支名 //创建新分支并切换到分支,是git branch 和 git checkout 的合并
git branch //查看分支,显示所有分支,前边带 * 为当前多在分支
git merge 分支名 // 合并指定分支到当前分支,合并成功后会显示合并信息(是快进合并或是其他),合并完成后,就可以吧指定合并的分支名删除,因为这时候他就没啥用了
git merge --no–ff -m ‘注释’ 分支名 //合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并,也因为
gie branch -d 分支名 //删除
git log --graph //可以看到分支合并图,方便在合并文件冲突和解决完冲突后可用这个命令查看
git stash //把当前工作现场‘存储’起来;例如:正在写模块,突然有个bug需要马上修复,但是现在的功能写了一半了,一时半会写不好,那么用 git stash 把当前存储起来,然后再建个分支,改bug-》提交-》上传-》删分支-》重新切换到之前的分支然后恢复工作现场;
git stash list //查看存储信息,git stash 是可以执行多次的,那么就会有多条存储信息
git stash apply //恢复存储,这个命令只是恢复并不会删除存储信息,如果有多条存储信息可以git stash apply stash@{n} 选择某一个恢复
git stash drop //删除存储
git stash pop //恢复并删除存储
git branch -D 分支名 //删除一个还没有被合并的分支,场景例:有一个新功能需要开发,在还没有合并提交之前突然不需要这个新功能了,删除时Git会提示有修改未合并此时删除会丢失修改,那么就用这个命令强行删除分支