git在项目中常使用的命令
1.创建版本号
通过git init
命令把这个目录变成Git可以管理的仓库
把文件添加到版本库
用命令git add告诉Git,把文件添加到仓库:
git add 文件名
用命令git commit -m 告诉Git,把文件提交到仓库:-m后面输入的是本次提交的说明
git commit -m 说明文字
疑难解答:
Q:输入
git add readme.txt
,得到错误:fatal: not a git repository (or any of the parent directories)
。A:Git命令必须在Git仓库目录内执行(
git init
除外),在仓库目录外执行是没有意义的。Q:输入
git add readme.txt
,得到错误fatal: pathspec 'readme.txt' did not match any files
。A:添加某个文件时,该文件必须在当前目录下存在,用
ls
或者dir
命令查看当前目录的文件,看看文件是否存在,或者是否写错了文件名。
2.远程仓库
从远程仓库克隆
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone
命令克隆
git clone 远程仓库地址
Git支持多种协议,默认的git://
使用ssh,但也可以使用https
等其他协议。
3.分支管理
创建分支
git branch 分支名
切换分支
git checkout 分支名
常用的是: git switch 分支名
//创建并切换
git checkout -b 分支名
或者
git switch -c <name>
查看当前分支
git branch
删除分支
git branch -d 分支名
合并某分支到当前分支
git merge <name>
解决冲突
//必须手动解决冲突后再提交。
git status也可以告诉我们冲突的文件
git log --graph命令可以看到分支合并图。
分支管理策略
//Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
//如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
git merge --no-ff -m 说明文字 分支
//本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。
4.多人协作
查看远程库的信息
git remote
//查看更详细的信息
//显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。
git remote -v
推送分支
//推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上
git push origin 分支名
//要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支
git checkout -b dev origin/dev
多人协作的工作模式通常是这样:
首先,可以试图用
git push origin <branch-name>
推送自己的修改;如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并;如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用
git push origin <branch-name>
推送就能成功!如果
git pull
提示no tracking information
,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
。这就是多人协作的工作模式,一旦熟悉了,就非常简单。