1、创建一个新的仓库:(选择一个合适的地方,创建一个空目录)
$mkdir learngit //learngit是用git新建的一个目录
$cd learngit
$pwd //pwd命令用于显示当前目录
2、通过git init命令把这个目录编程git可以管理的仓库:
$git init
3、用git add把文件添加到仓库: (可以一次add多个文件,可反复使用,添加多个文件,其实质是把文件添加到“工作区”的“暂存区”)
$git add ** //**是文件名
4、用git commit告诉git,把文件提交到仓库,其实质是把文件添加到“分支区”:
$git commit -m “**说明内容**” //-m后面输入的是本次提交的说明
5、$git status命令可以随时掌握工作区状态
$git status //告诉你有文件被修改过
$git diff //可以查看修改内容
6、$git log 可以告诉我们历史记录,当前的仓库状态 (--pretty=oneline参数可以把历史记录整合到一行)
$git log //告诉我们历史记录
7、HEAD表示当前的版本,上一版本就是HEAD^,上上一个版本就是HEAD^^,上100个版本就是HEAD~100
8、$git reset --hard HEAD^ //退回到上一个版本,如果--hard 后面是跟commit id,就可回到该id所对应的状态
$git reset --hard HEAD^
9、查看该文件的内容
$cat ** //**是文件名
10、 查看命令历史
$git reflog //以便确定要回到未来的哪个版本
11、撤销修改:
$git checkout -- ** //把**文件在工作区的修改全部撤销
①一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
②一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
12、删除文件:
$rm ** //删除工作区的文件
$git rm //删除工作区、暂存区的文件
$git commit //删除分支的文件
13、添加远程库:
$git remote add origin git@server-name:path/repo-name.git //关联一个远程仓库
$git push -u origin master //第一次推送master分支的所有内容
$git push origin master //此后,每次本地提交后,只要有必要,使用此命令推送最新修改
14、从远程库克隆:
$git clone *** //***是远程仓库地址
$cd *filename*
$ls
15、git中与分支相关:
$git branch //查看分支
$git branch <name> //创建分支
$git checkout <name> //切换分支
$git checkout -b <name> //创建+切换分支
$git merge -b <name> //合并某分支到当前分支
$git branch -d <name> //删除分支
$git log --graph //查看分支合并图
$git merge --no-ff -m "说明" <name> //可以用普通模式合并,合并后的历史有分支,能看出来曾经做过的合并,二fastforward合并看不出来曾经做过的合并
16、多人协作:
1、首先,可以试图用git push origin branch-name推送自己的修改;
2、如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3、如果合并有冲突,则解决冲突,并在本地提交;
4、没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
5、如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。