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