0、git管理的是修改而不是文件!1、在 git Bash 上设置用户名和emailgit config –global user.name “Cai"git config –global user.email “1805800867@qq.com"查看:git config –list2、在空白目录 “test” 下创建git仓库,(test文件夹就是工作区)git init3、将仓库目录下的文件 test.txt 添加到暂存区git add test.txt4、将暂存区下的文件提交到当前分支git commit -m “提交的描述"5、查看仓库中文件的状态: 是否有文件改动了、是否有 add 过的文件git status6、查看文件具体修改的内容git diff test.txt7、当前版本出错,想要版本回退时从版本日志中寻找合适的版本,打印版本日志:git log8、回退到之前的版本git reset –hard HEAD^ //回退到前一个版本git reset –head 1094a //根据commit id回退到指定版本(commit id写前几位就好)git reset –hard HEAD10 //HEAD后面的数字10表示回退到上十个版本9、回退到之前版本后后悔了,再变回来必须知道该版本的commit idgit reflog //查看命令记录git reset –hard 1094a //回退到指定版本cat test.txt //查看该文件内容10、撤销工作区的修改(没有添加到暂存区)git checkout – test.txt //撤销对test.txt的修改11、撤销暂存区的修改git reset HEAD test.txt //撤销对暂存区中test.txt的修改12、从版本库中删除文件git rm test.txtgit commit -m “删除了test.txt文件"如果误删:git checkout – test.txt //还原13、如何将本地git仓库上传至GitHub1、打开GitBash输入: ssh-keygen -t rsa -C “110120119@qq.com” //生成公钥和私钥2、登录你的GitHub,并在设置中添加 SSH keys ,放入公钥。3、在GitHub中新建一个空仓库,仓库建好后可以选择其列出的第二项推送本地仓库的方式。4、详细参考链接: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013752340242354807e192f02a44359908df8a5643103a00014、多人协作时从GitHub远程库克隆仓库git clone git@github.com:GithubName/test.git15、多人协作时,采用分支管理: 创建不同的分支,每个人在不同的分支上工作,最后合并分支。git branch //查看分支git branch name //创建分支git checkout name //切换分支git checkout -b name //创建并切换分支git branch -d name //删除分支(只能删已完成合并的分支)git branch -D name //强行删除分支(删未合并的分支)git merge name //合并 name 分支到当前分支git merge –no-ff -m “这里合并了dev分支” dev //使用普通模式合并分支,使其有据可查git log //查看分支历史//同一段内容在不同分支上不一致时无法合并分支,先解决冲突后再合并,然后删除创建的分支//master分支是主分支,通常不直接在主分支上修改,而仅用来发布新版本//可创建一个dev分支,所有人都在dev分支上创建自己的分支,所有修改都提交到dev分支,最终将dev分支作为新版本提交到master分支16、暂存未完成修改的分支git stash //工作只进行到一半没法提交时,先把工作现场存起来,下次再做git stash list //查看保存的工作区列表git stash pop //恢复工作区并删除暂存的stashgit stash apply //恢复工作区,不删stashgit stash drop //删除stash//比如是在dev分支上创建的工作分支,则到dev分支上恢复工作区17、多人协作时,使用远程分支git remote //查看远程库,可以看到远程库名字,默认名:origingit remote -v //查看远程库详细信息,显示可以抓取和推送的origin的地址git push origin master //推送本地主分支(master)到远程分支(origin)git push origin dev //推送本地开发分支(dev)到远程分支//通常需要推送主分支和开发分支到远程分支中,而每个人基于开发分支自己创建的工作分支,视情况推送。抓取远程分支时,只能clone主分支master,如果要在dev分支工作就需要创建远程dev分支到本地git checkout -b dev origin/dev //在本地创建远程的dev分支,然后就可以在dev分支创建自己的工作分支了git push origin dev //时不时推送dev分支到远程18、如果向远程分支推送失败//如果推送失败,因为你试图推送的提交与你的小伙伴的提交冲突了。git pull //把最新的提交抓下来,然后在本地合并,解决冲突后再推送git branch –set-upstream-to=origin/dev dev //如果git pull 失败,可能忘了设置dev分支与远程dev分支的链接// 再git pull ,然后推送,合并分支19、标签管理//为了方便管理,可以为每次提交打一个标签,比如版本号git tag v1.0 //为当前分支创建标签git tag //查看所有标签git tag v0.9 0536a //如果忘了打标签,可以指定使用git log查到该分支版本的 commit id 打标签git show v1.0 //显示标签信息git tag -a v1.0 -m “标签描述” 03366b //创建带说明的标签//标签都是创建在本地的,不会自动推送到远程git tag -d v1.0 //删除本地标签git push origin v1.0 //推送一个标签到远程git push origin –tags //推送所有本地标签到远程git push origin :refs/tags/v1.0 //删除远程标签 20、使用码云//码云是国内的Git托管服务平台,和Git不同的是码云可以提供免费的私有仓库,而Git的私有仓库是收费的。//和GitHub一样,注册码云并添加公钥后在码云创建一个项目,然后使用下面的命令关联码云的远程库git remote add gitee git@gitee.com:cai/testgit.git //注意码云的远程库是 gitee 而不是origin(可以使用 git push gitee master 推送了)git remote -v //查看远程库信息git remote rm origin //删除origin远程库(origin是GitHub的远程库)git remote add github git@github.com:OnlyChangeMyself/test.git //重新关联GitHub的远程库,此时GitHub的远程库叫github了而不是origin(可以使用git push github master)21、配置别名git config –global alias.sta status //使用git sta就等于git status了git config –global alias.cmt commit //git cmt等于git commitgit config –global alias.lg “log –color –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit” //git lg22、搭建Git服务器//其实就是搭建私有仓库//推荐使用Linux服务器如Ubuntu或Debian//假设你有sudo权限的账号第一步:sudo apt-get install git //安装Git第二步:sudo adduser git //创建一个Git用户,用来运行Git服务第三步:创建证书登录:///收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个第四步,初始化Git仓库://先选定一个目录作为Git仓库,在该目录下输入命令(比如目录:/srv):sudo git init –bare sample.gitsudo chown -R git:git sample.git第五步:禁用shell登录,通过编辑/etc/passwd文件完成git❌1001:1001:,,,:/home/git:/bin/bash改为:git❌1001:1001:,,,:/home/git:/usr/bin/git-shell第六步,克隆远程仓库:git clone git@server:/srv/sample.git23、参考自[参考自廖雪峰的官方网站][1]