Git(官网:https://git-scm.com/download/)安装之后鼠标右键会自动多出两个选项,这时就代表了安装成功
第一次clone 使用ssh-keygen -o 生成ssh密钥
Git global setup
git config --global user.name "username"
git config --global user.email "[email protected]"ssJ
远程到本地
git clone [url] //获取全部分支内容,整体下载时间较长 & 所占磁盘空间较大
git clone -b [branch] [url] //拉取特定分支
git clone -b [branch] --single--branch git_[url] // 获取指定分支的代码
git clone --depth 10 [branch] //只会获取最近 xx(10条提交记录的)代码,默认是master分支, 如果想要指定分支,可以结合 -b --single--branch 使用!
提交创建文件目录
cd existing_folder
git init //初始化
git remote add origin [url] //上传的代码仓库地址
git add . //收集本地文件
git commit -m "提交版本信息" //提交信息
git push -u origin master //更新到服务器
使用git commit --amend 修改commit信息
删除文件 或文件夹
本地删除 :git rm -r [file/dir]
本地提交:git commit -m “修改信息”
推送服务器 git push origin [url]
#3. 错误处理:
(1)第一次提交代码
把代码上传到master分支上执行如下。
git push -u origin master
在使用git 对源代码进行push到gitHub时可能会出错, 错误代码如下:
hint: Updates were rejected because the tip of your current branch is behin
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
尝试下面的命令
git getch
git merge
或
git pull (网上说与上两个命令作用相同?)
但是仍然不行
出现错误的主要原因是github中的README.md文件不在本地代码目录中
可以通过如下命令进行代码合并【注:pull=fetch+merge]
git pull --rebase origin master
同步远程仓库更新到本地
git pull --rebase origin master
执行上面代码后可以看到本地代码库中多了README.md文件
此时再执行语句 git push -u origin master即可完成代码上传到github
##2. 本地落后远程 且存在较大分歧。想要拉去远程最新的版本到本地
提示: Your branch and ‘origin/master‘ have diverged
可执行如下命令
git fetch origin
git reset --hard origin
#4. 分支操作
在本地新建分支: git branch newBranch
切换新分支: git checkout newBranch
创建并切换到新分支: git checkout -b newBranch
将新分支发布在远程服务器上: git push origin newBranch
在本地删除一个分支: git branch -d newBranch
同步远程端删除一个分支: git push origin :newBranch (分支名前的冒号代表删除)
删除远程分支
git push origin --delete [branch_name]
#5. 子模块:
添加子模块非常简单,命令如下:
git submodule add
其中,url为子模块的路径,path为该子模块存储的目录路径。
执行成功后,git status会看到项目中修改了.gitmodules,并增加了一个新文件(为刚刚添加的路径)
git diff --cached查看修改内容可以看到增加了子模块,并且新文件下为子模块的提交hash摘要
git commit提交即完成子模块的添加
git submodule deinit submodule_name
git rm submodule_name
rm -rf .git/modules/submodule_name
$ git submodule sync --recursive
克隆项目后,默认子模块目录下无任何内容。需要在项目根目录执行如下命令完成子模块的下载:
git submodule init
git submodule update
或:
git submodule update --init --recursive