欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

学习笔记 - git 从远程源提取代码更改并提交,本地代码提交到远程源

最编程 2024-03-14 15:40:45
...

最近开始学习使用git,找了好多博主的文章总结了一下,并非原创

多多指教。

一、git从远程仓库拉取代码修改并提交

1、本地新建项目目录

2、从远程仓库拉取代码到本地

git  clone  git[@xxx/xxx.git]  //注:默认拉取的是master的分支上的代码
git  clone  git[@xxx/xxx.git] -b 分支名
​
//若分支不对,需要切换分支
    git remove -v    //查看远程仓库地址否错误
    git branch -al    //查看本地和远程仓库的所有分支(master是本地分支,*表示当前正在使用的分支)
                      //若报错找不到路径输入git init
    git branch -vv    //查看分支是否绑定
    git checkout [分支名字]  //切换到正确分支,开始拉代码

3、将本地仓库关联远程仓库,可以关联多个远程

//初始化
    git init
//关联远程仓库地址
    git remote add origin [git@xxx/xxx.git]
//取消或取消与远程仓库的连接
    git remote remove origin
// 初始化
    git init
//连接新的远程仓库地址
    git remote add origin [url] 
//查看关联了那些远程仓库
    git remote -v 

4、从远程分支拉取最新代码合并到本地分支

第一种方法
1、git pull origin master //不推荐这种方式,因为是直接合并的,无法提前处理冲突。

 /*
origin为远程主机名称,develop为远程分支名称,可以在.git文件夹下的config下找到 

这个命令是将本地分支与远程分支进行关联,并且将远程分支origin拉到本地分支master下 如果远程分支origin下还有子分支1.0.0.1,则使用git pull origin/1.0.0.1 master 这样就是将本地的master分支与远程的origin/1.0.0.1进行了绑定 ​ 如果你想拉到本地的dev分支上,首先git checkout -b dev(切换分支),然后使用git pull origin dev,这样就将地dev分支与远程origin/dev相绑定了


2、git branch -vv

 可以看到master后面蓝色部分origin/master,说明master分支已经与origin/master绑定在一起了。

 ​
3、这里如果没有master绑定到远程的分支,就必须使用:

   git push origin master :master git push <远程主机名> <本地分支名>:<远程分支名> 
*/
​  
第二种方法
//查询当前远程的版本
$ git remote -v
//获取最新代码到本地
$ git fetch origin master  [示例1:获取远端的origin/master分支]
$ git fetch origin dev [示例2:获取远端的origin/dev分支]
//查看版本差异
$ git log -p master..origin/master [示例1:查看本地master与远端origin/master的版本差异]
$ git log -p dev..origin/dev   [示例2:查看本地dev与远端origin/dev的版本差异]
//合并最新代码到本地分支
$ git merge origin/master  [示例1:合并远端分支origin/master到当前分支]
$ git merge origin/dev [示例2:合并远端分支origin/dev到当前分支]

​/*
注:
git pull和git fetch的区别

git  pull(拉取)  即从远程仓库抓取本地没有的修改并【自动合并】到远程分支     git pull origin master
​
git  fetch(提取) 从远程获取最新版本到本地不会自动合并   git fetch  origin master   
*/
​

5、提交代码

//先查看状态,是否有改动
    git status
//把更新的代码添加到暂存区
    git add [xxx]  //xxx为文件名,
/*
git add . 会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤。
git add * 会忽略.gitignore把任何文件都加入。
*/
//将暂存区的更新提交到仓库区。
    git commit -m "【更新】更新说明"
//先git pull,拉取远程仓库所有分支更新并合并到本地
    git pull
//将本地分支的更新全部推送到远程仓库。
    git push origin master
//再次查看状态,看是否还有文件没推送
    git status

二、使用git将本地文件提交到远程仓库

操作准备条件:

git远程仓库已经建好了,本地文件已经存在了,现在要将本地代码推到git远程仓库保存。

解决办法如下:

1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库

git init

2、把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件 git add .

3、用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明:git commit -m 'first commit'

4、关联到远程库 git remote add origin 你的远程库地址

5、获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败) git pull --rebase origin master

6、把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。执行此命令后会要求输入用户名、密码,验证通过后即开始上传。 git push -u origin master

-u选项执行以下操作:对于每个最新或成功推送的分支,添加上游(跟踪)引用,由无参数的git-pull和其他命令使用。

所以,在用-u选项推送本地分支之后,这个本地分支会自动链接到远程分支,并且可以使用没有任何参数的git pull。

附: