git命令
将本地项目上传到github上
一、初始化为git目录
git init:进入到要初始化的目录下,执行该命令。git init执行后,表示当前目录已经成为一个git目录,会在当前目录下创建一个.git文件夹,该文件夹下存放的是版本历史记录文件。
git init bare:这个命令和git init类似,但不会在当前目录下生成.git文件夹,而是直接将版本历史记录文件放到了当前目录下,这就使得当前目录成为了一个裸仓库,不允许进行远端仓库的任何git操作。这样做的好处是避免这种冲突:用户A在远端仓库master分支下执行git操作,而同时用户B将本地版本提交到远端仓库的master分支,这时候就产生了冲突。
二、添加本地文件至git目录下
git add myFloder:其中myFloder是我想放入到git项目中的文件夹名称,首先将myFloder拷贝到上述初始化的git目录下,执行add命令后会将myFloder及其子文件夹和文件都添加为一个git项目,会看到所有的文件夹和文件都打上了加号的图标。
git add myTest.java:添加单个文件则在后边直接跟文件名
git add *.java:支持文件名模糊匹配
git add .:表示将当前目录下的所有文件都添加进去。
三、连接远程仓库
git remote add origin git@github.com:myGitHub/myReposity.git: 其中myGitHub为git的用户名,myReposity是项目名称
四、添加项目到远程仓库上
git push -u origin master
git push -u origin master:branch
下载github的项目
一、移除初始化
进入到初始化的目录,删除.git文件夹,或者执行命令rm -rf .git
二、从已有的Git仓库克隆出一个新的镜像仓库
git clone git://github.com/myGitHub/myReposity.git mylocalRepository:该条命令表示将已有的github上的一个项目下载到本地,本地文件夹命名为mylocalRepository。
加-o test选型时,表示将clone下来的本地仓库命名为test,否则默认为origin
提交代码和更新代码
一、从远程仓库获取最新代码,但是不merge
git fetch origin
二、从远程仓库获取最新代码,并且自动merge
git pull origin master
三、提交代码到本地仓库中
git add .
git status
git commit -m ‘提交注释’
四、列出远程主机
git remote -v
git remote show test(只查看test主机的信息)
git remote add(添加一个远程主机)
git remote rm(删除一个远程主机)
git remote rename(更改一个远程主机名称)
五、提交代码到远程仓库
git push origin master
本地分支
一、创建分支
git branch test
二、查看当前所在分支
git log –oneline –decorate
三、切换分支
git checkout test
四、代码合并
git checkout master
git merge test
五、删除无用的分支
git branch -d test
六、当不想merge的时候,想强制删除无用分支
git branch -D test
远程仓库分支
一、在远程仓库上增加分支
git branch localBranch
git checkout localBranch
git push origin localBranch:remoteBranch
二、获取新分支
git fetch origin
如果有新分支,该命令会自动获取一个origin/remoteBranch的指向
三、更新本地分支为最新代码,或者以远程分支为基础新建本地分支
git checkout -b localBranch origin/remoteBranch
git merge origin/remoteBranch
四、将本地分支与远程分支联系起来
git branch -u origin/remoteBranch
五、查看本地分支与远程分支的关系
git fetch –all;git branch -vv
六、获取并merge分支
git pull
七、删除远程分支
git push origin –delete remoteBranch
rebase
一、另一种方式:修改分支的指向
比如,让test以master的修改作为基础,将test的修改和master的修改合并,并使test指向到最新位置。
git checkout test
git rebase master
这时候,test已经指向了最新的位置,涵盖了master和test的所有修改,再移动master的指向就能达到master和test合并的目的了。
git checkout master
git merge test
还有onto参数在多分支情况下可用:git rebase –onto master test1 test,具体请参考官方教程
Comments