github在备案地执行git commit 后需要运行以下代码: 1、创建README.md 2、git add README.md 3、git commit -m '第一次提交' 4、git remote add origin https://github.com/mzq412304/caiAPP.git 指本地仓库和远程仓库建立连接 5、git push -u origin master 码云提交代码步骤: git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并。 1、初始化 git init 2、 git remote add origin https:///mzq412304/cae_app.git 3、拉取线上代码: git pull origin master git pull <远程主机名> <远程分支名>:<本地分支名> 例如执行下面语句: git pull origin master:brantest 将远程主机origin的master分支拉取过来,与本地的brantest分支合并。 后面的冒号可以省略: git pull origin master 表示将远程origin主机的master分支拉取过来和本地的当前分支进行合并。 上面的pull操作用fetch表示为: git fetch origin master:brantest git merge brantest 相比起来git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并。 4、提交代码 git add. 提交所有代码 5、git commit -m '说明' 6、第一次提交,:git push -u origin master 第二次提交就按照上面的写法即可 不在需要加 -u: git push origin master 说明: git push命令用于将本地分支的更新,推送到远程主机。它的格式与git pull命令相仿 $ git push <远程主机名> <本地分支名>:<远程分支名> 注意:这里的冒号:前后是必须没有空格的。 注意: 分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>。 如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。 $ git push origin master 上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。 如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。 $ git push origin :master #等同于 $ git push origin --delete master 上面命令表示删除origin主机的master分支 如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略。 $ git push origin 上面命令表示,将当前分支推送到origin主机的对应分支。 如果当前分支只有一个追踪分支,那么主机名都可以省略。 $ git push 如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push $ git push -u origin master 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。 二、常用命令 1、初始化:git init 创建一个git仓库,创建之后就会在当前目录生成一个.git的文件 2、添加文件:git add filename 把文件添加到缓冲区 3、添加所有文件到缓冲区 git add .或者 git add --all(从目前掌握的水平看,和后面加“.”的区别在于,加all可以添加被手动删除的文件,而加“.”不行): 4、删除文件 git rm filename 提交:提交缓冲区的所有修改到仓库(注意:如果修改了文件但是没有add到缓冲区,也是不会被提交的) 5、git commit -m "提交的说明" 6、commit可以一次提交缓冲区的所有文件 查看git库的状态,未提交的文件,分为两种,add过已经在缓冲区的,未add过的 7、查看状态 git status 8、查看日志 git log 9、版本回退:git reset 可以将当前仓库回退到历史的某个版本 10、git reset --hard HEAD^ 第一种用法:回退到上一个版本(HEAD代表当前版本,有一个^代表上一个版本,以此类推) git reset --hard d7b5 第二种用法:回退到指定版本(其中d7b5是想回退的指定版本号的前几位) 11、查看命令历史:git reflog 查看仓库的操作历史 12、查看提交版本 git log 1) git config --global user.name 'mzq304' // 查看git用户名 2) git config --global user.email '8278@qq.com' // 查看git邮箱 3) git log --oneline // 查看所有提交的版本号 13、git reflog // 查看每次操作对应的commitId账号 git reset --hard commitId // 本地端口回滚指定的版本 git push -f // 强制推送到远程分支 14、回滚版本 1) git reset --hard HEAD^,回滚到上个版本 2) git reset --hard HEAD^~2,回滚到前两个版本 3) git reset --hard xxx(版本号或版本号前几位),回滚到指定版本号,如果是版本号前几位,git会自动寻找匹配的版本号 4) git reset --hard xxx(版本号或版本号前几位) filename,回滚某个文件到指定版本号(需要进入该文件所在目录) 5) git reset --hard 希哈值 三、git分支管理 1、查看分支的情况,git branch 前面带*号的就是当前分支 2、创建分支 git branch 分支名 3、切换当前分支到指定分支: git checkout 分支名 4、创建分支并切换到创建的分支 git checkout -b 分支名 5、合并某分支的内容到当前分支 git merge 分支名 6、删除分支 git branch -d 分支名 注意: 如果两个分支同时进行了同一个文件的修改和提交,在merge时就会产生冲突,首先要手动打开文件解决冲突,再提交,就相当于进行了merge 两个分支分别进行了commit,最新的一次提交将两个分支内容进行了合并 7、查看分支合并图 git log --graph 8、新建标签 git tag 标签名 版本号 默认为最新版本,后面加上版本号参数则可指定版本增加标签 9、查看所有标签 git tag 10、查看标签的详细信息 git show 标签名 11、将tag提交到远端仓库 推送所有tag: git push origin --tags 12、推送某个tag:git push origin v1.0 13、将本地仓库内容推送到远端仓库 git push -u origin master (-u 表示第一次推送master分支的所有内容,后面再推送就不需要-u了), 跟commit的区别在于一个是提交到本地仓库,一个是提交到远程仓库 14、从远端库更新内容到本地(相当于svn的update) git pull 注意:tips:如果push的时候,本地和文件和远端文件有冲突,就要先pull、然后手动解决冲突,才能继续push 15、git记住用户名密码 push的时候默认每次都需输入GitHub的用户名和密码,在git仓库根目录下.git文件夹的config文件末尾增加如下内容, 即可记住用户名密码,无需每次推送都输入了 [credential] helper = store 注意: 提交到git时,忽略部分IDE产生的文件,在根目录下创建.gitignore文件, 注意:新加.gitignore只能忽略那些原来没有被提交过的文件,如果某些文件已经被纳入了版本管理中, 则修改.gitignore是无效的。解决方法就是先把本地缓存删除(改变成未track状态),然后再提交: git rm -r --cached . git add . git commit -m 'update .gitignore' 四、 1、git clone 之后才想要提交代码怎么办? 主要的问题来自于git remote的地址问题,那么我们要做的首先应该是将本地与当前远程remote切断联系。然后需要添加一个新的远程仓库,这个新的仓库从何而来呢?就需要我们对原仓库进行fork了,之后就是使用刚刚文章中提到的添加远程的方法。 第一步: 与当前远程remote切断。 git remote remove origin 取消本地目录下关联的远程库 第二步: 对原仓库进行fork,添加远程 git remote add origin git@github.com:mzq412304/shequn.git https:///mzq304/shequn.git 第三步: git push origin master 后面按照之前的方法上传提交代码即可。 说明: 在clone代码库到本地的时候,采用SSH加密的方式的话,在git push的时候是无须输入远程仓库的github账户密码的,SSH的写法就像下面这样: git@github.com:git_username/repository_name.git 到了git push的时候,自然还是需要我们老老实实输入账号密码的 2、使用Git下载指定分支命令为:git clone -b 分支名仓库地址 如: 使用Git下载v.2.8.1分支代码,使用命令:git clone -b v2.8.1 https://git.oschina.net/oschina/android-app.git 解释命令:-b表示要从分支下载,v2.8.1就是具体的某个分支的名称,https://git.oschina.net/oschina/android-app.git这是app源码的git仓库地址 报错集: 1、The file will have its original line endings in your working directory 原因:是在windows下生成的所以换行和 linux 确实不同可能是因为这个导致的 解决方法:git config --global core.autocrlf false 2、 refusing to merge unrelated histories 原因:最主要原因还是在于本地仓库和远程仓库实际上是独立的两个仓库。假如我之前是直接clone的方式在本地建立起远程github仓库的克隆本地仓库就不会有这问题了。 解决方法: 3、Your local changes to the following files would be overwritten by merge 原因: 解决方法: 1) 服务器代码合并本地代码 $ git stash //暂存当前正在进行的工作。 $ git pull origin master //拉取服务器的代码 $ git stash pop //合并暂存的代码 2) 服务器代码覆盖本地代码 $ git reset --hard //回滚到上一个版本 $ git pull origin master 4、 RPC failed; HTTP 413 curl 22 The requested URL returned error 解决方法:git config http.postBuffer 524288000 |
|