常用Git软件的有github,gitlab,gitee,码云等,这些功能都差不多,操作方式也基本上一样。接下来以GitHub为例,讲述如何将自己本地的代码提交上去。
1、登录GitHub官网,注册一个GitHub账号;
2、安装Git软件;
参考CSDN:
怎么样把本地的代码上传到git上
git如何将本地文件关联到远程服务器
git从远程仓库拉取代码修改并提交和本地代码提交到远程仓库
一、git从远程仓库拉取代码修改并提交
1.在Github 的个人主页中新建一个仓库,如果clone他人仓库,直接看步骤2
2.复制仓库链接,在实验环境中,将该仓库克隆到本地
git clone git[@xxx/xxx.git] //注:默认拉取的是master的分支上的代码
git clone git[@xxx/xxx.git] -b 分支名
3.进入克隆到本地的仓库目录,输入以下命令,对文件进行修改
4.使用git add --all
命令,添加仓库内的所有文件
5.使用git commit、git remote、git push
命令,将本地仓库同步到Github中
整体流程代码:
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 [分支名字] //切换到正确分支,开始拉代码
二、git将本地仓库代码关联远程仓库,可以关联多个远程
1、(进入项目文件夹)通过命令 git init
把这个目录变成git可以管理的仓库
2、把文件添加到版本库中,使用命令 git add .
添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件
3、用命令 git commit
告诉Git,把文件提交到仓库。引号内为提交说明:git commit -m 'first commit'
4、关联到远程库 git remote add origin
你的远程库地址 git remote add origin git@git.oschina.net:yourname/demo.git
5、获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败)git pull
or git pull --rebase origin master
git pull
命令在更新远端代码的同时如果与本地代码产生冲突了, 那么冲突的文件中就出现了需要手动合并的部分正常的解决冲突过程是
1,git add .
2,git commit -m “…”
3,git push时因为本地仓库代码与远程仓代码有冲突,所以接下来
4,git pull拉取远程代码,而冲突需要手动解决
5,解决好后重新进行git add . git commit -m"…" git push
而
git pull
这一步如果加上了--rebase
的选项,那么第5步操作将变成如下:git add .
git rebase --continue
git push
所以git pull --rebase用在合并代码的时候其作用就是在一个随机创建的分支上处理冲突,避免了直接污染原来的分区
6、把本地库的内容推送到远程,使用 git push
命令,实际上是把当前分支master推送到远程。执行此命令后会要求输入用户名、密码,验证通过后即开始上传。 git push -u origin master
注:-u选项执行以下操作:对于每个最新或成功推送的分支,添加上游(跟踪)引用,由无参数的git-pull和其他命令使用。 在我们第一次提交git的时候:发现上面用了这个-u
参数,也没作解释,特意搜索了下这个-u
的用法,加了参数-u
后,以后即可直接用git push
代替git push origin master
所以,在用-u选项推送本地分支之后,这个本地分支会自动链接到远程分支,并且可以使用没有任何参数的git pull。
整体流程代码:
//初始化
git init
//关联远程仓库地址
git remote add origin [git@xxx/xxx.git]
//如果仓库地址错误或更换仓库,取消与远程仓库的连接
git remote remove origin
git remote rm origin //删除origin
// 再次初始化
git init
//连接新的远程仓库地址
git remote add origin [git@xxx/xxx.git]
//查看关联了那些远程仓库
git remove -v
//更新
git pull
出现问题:
1、强制推送,即利用强覆盖方式用你本地的代码替代git仓库内的内容
git push -f origin master
2、fatal: remote origin already exists.
git remote rm origin
3、克隆huggingface
git clone https://huggingface.co/bert-base-chinese
4、Git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。远程仓库和本地仓库存在差异。一般都是因为你在码云创建的仓库有ReadMe文件,而本地没有,造成本地和远程的不同步
5、如果提示没有权限更新:则在git远程上添加本地的公共秘钥.
windows本地公共秘钥地址:C:\Users\Administrator.ssh\id_rsa.pub
linux本地公共秘钥地址:~/.ssh/
三、 GitHub中ssh配置
1、在Linux上对git进行全局配置
该配置只需要做一次之后Linux主机上所有git管理项目生效:
在一二之前必须确定ssh是否配置成功,一台主机一个sshkey
git config --global user.name
git config --global user.email
2、Linux上生成SSH key:
ssh-keygen -t rsa -C “*******@.com” <–这里输入自己的邮箱
3、上传Public Key(公钥):
查看public key并拷贝,将公钥添加到github账号的SSH公钥里: cat ~/.ssh/id_rsa.pub
4、 公钥测试:
ssh -T git@gitub.com
四、Git常见命令
git status
查看当前状态,是否和远程仓库的内容是同步的;如果不同步,先pull下来,再下一步;同步则下一步;
git rm -r --cached .
删除本地缓存
git add .
添加所有文件
git commit -m “提交信息”
添加提交说明
git push
提交到远程仓库
git ls-files
命令是用来查看暂存区中文件信息
git branch -a
出现这种情况主要是由于远程仓库太多,且分支较多。在默认情况下,git push时一般会上传到origin下的master分支上,然而当repository和branch过多,而又没有设置关联时,git就会产生疑问,因为它无法判断你的push目标
第一种如上图中的提示:git push --set-upstream origin master。其中的origin是你在clone远程代码时,git为你创建的指向这个远程代码库的标签,它指向repository。为了能清楚了解你要指向的repository,可以用命令git remote -v进行查看。
master是你远程的branch,可以用git branch -a查看所有分支,远程分支是红色的部分。然后确定好这两个值后,将命令中标粗的参数换掉即可。
另一种方法是:git push -u origin master。同样根据自己的需要,替换origin和master。