Git常用命令
1.全局设置 后面的值是自定义的
git config --global user.name "admin" git config --global user.email "admin@163.com"
2.在当前目录新建一个Git代码库
git init
mkdir sxpcwlkj 创建一个文件夹 cd sxpcwlkj 进入文件夹 git init 初始化git touch README.md 新建一个空的文件 git add README.md 添加文件到暂存区 git commit -m "first commit" 提交到git git remote add origin https://gitee.com/shanpengnian/sxpcwlkj.git 提交地址 git push -u origin master 提交
3.如果是第二次提交
git add . 添加当前目录所有到暂存区 git commit -m "first commit" 提交到+描述 git git remote add origin https://gitee.com/shanpengnian/sxpcwlkj.git 提交地址 git push -u origin master 提交
4.从远程仓库获取最新内容
在多人协作过程中,当自己完成了本地仓库中的提交,想要向远程仓库推送前,需要先获取到远程仓库的最新内容。
可以通过 git fetch
和 git pull
来获取远程仓库的内容。
git fetch origin master git pull origin master
git fetch
和 git pull
之间的区别:
git fetch
是仅仅获取远程仓库的更新内容,并不会自动做合并。git pull
在获取远程仓库的内容后,会自动做合并,可以看成git fetch
之后git merge
。
注意:建议多使用
git fetch
。
远程仓库
上面的所有命令都是针对本地仓库的操作。当我们希望多个人来协作时,会将代码发布到一个统一的远程仓库,然后多个人在本地操作以后,在推送到远程仓库。其他人协作时,需要先同步远程仓库的内容,再推送自己的修改。
1. 从远程仓库克隆
如果你本地没有仓库,希望从已有的远程仓库上复制一份代码,那么你需要 git clone
。
git clone https://github.com/git/git.git // 通过 https 协议,克隆 Github 上 git 仓库的源码git clone linfuyan@github.com/git/git.git // 通过 ssh 协议,克隆 Github 上 git 仓库的源码
注意:
git clone
后面的仓库地址,可以支持多种协议,如 https, ssh 等。
2. 添加远程仓库
如果你已经有了一个本地仓库,如之前创建的 git-guide
,然后你打算将它发布到远程,供其他人协作。那么使用:
git remote add origin your_remote_git_repo // 为本地仓库添加远程仓库
3. 推送本地的内容到远程仓库
当本地仓库中,代码完成提交,就需要将代码等推送到远程仓库,这样其他协作人员可以从远程仓库同步内容。
git push -u origin master // 第一次推送时使用,可以简化后面的推送或者拉取命令使用git push origin master // 将本地 master 分支推送到 origin 远程分支
注意:
git push -u origin master
,第一次使用时,带上-u
参数,在将本地的 master 分支推送到远程新的 master 分支的同时,还会把本地的 master 分支和远程的 master 分支关联起来。
4. 从远程仓库获取最新内容
在多人协作过程中,当自己完成了本地仓库中的提交,想要向远程仓库推送前,需要先获取到远程仓库的最新内容。
可以通过 git fetch
和 git pull
来获取远程仓库的内容。
git fetch origin master git pull origin master
git fetch
和 git pull
之间的区别:
git fetch
是仅仅获取远程仓库的更新内容,并不会自动做合并。git pull
在获取远程仓库的内容后,会自动做合并,可以看成git fetch
之后git merge
。
注意:建议多使用
git fetch
。
5. 查看远程仓库信息
git remote [-v] // 显示远程仓库信息
6. 建立本地分支和远程分支的关联
在本地仓库中的分支和远程仓库中的分支是对应的。一般情况下,远程仓库中的分支名称和本地仓库中的分支名称是一致的。
有的时候,我们会需要指定本地分支与远程分支的关联。
git branch --set-upstream 'local_branch' origin/remote_branch
7. 修改本地仓库对应的远程仓库地址
当远程的仓库地址发生变化时,需要修改本地仓库对应的远程仓库的地址。主要应用在工程迁移过程中。
git remote set-url origin url
常见报错:
$ git push -u origin master 推送到远程库出错
1、错误描述:
出错场景描述:
github上创建远程仓库的时候选择添加README.md文件,
git bash连接远程库,然后执行push操作,出现下面的问题
$ git push -u origin master
To github.com:XXXX/DesignPatterns.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com:XXXX/DesignPatterns.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
2、问题分析:
出现错误的主要原因是github中的README.md文件不在本地代码目录中。
3、解决方法:
(1)可以通过如下命令进行代码合并【注:pull=fetch+merge】
git pull --rebase origin master
(2)再执行语句:
git push -u origin master
即可完成代码上传到github。
去github上即可看到上传的项目