https://www.runoob.com/manual/git-guide/
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。非常适合多人协作编程。
windows版:https://gitforwindows.org/
linux版:http://git-scm.com/download/linux
本地使用git第一步:创建新仓库
创建新文件夹,打开后执行git init以创建新的 git 仓库。
clone仓库在本地
执行如下命令以创建一个本地仓库的克隆版本:
git clone /path/to/repository
clone远端服务器上的仓库:
git clone username@host:/path/to/repository
当拥有本地仓库以后,那么本地仓库将由 git 维护的三个模块组成。
当你对本地仓库源码进行改动后,除了保存在本地,你还可以对它们进行添加和提交。
提出更改(把它们添加到暂存区,这是 git 基本工作流程的第一步):
git add <filename>
git add *
git add . (此命令将添加所有改动)
将改动进行实际提交:
git commit -m "自定义的提交信息"
改动到这里已经提交到了 HEAD【如果要提交到远程仓库,还需推送】。
经过上面的步骤,改动已保存在本地仓库的 HEAD 中。
将改动提交到远程仓库:
git push origin master
也可以推送到任意分支。eg:git push origin master:one_branch_name
推送前,如果你没关联远程仓库,则需要add一下:
git remote add origin <ipaddress> (ipaddress为远程仓库地址)
这样才能和远程仓库创建连接,进行推送提交。
注:origin一般为所连接远程仓库的默认名字,当你连接了好几个仓库时,可以修改为你想要的任意名字。
分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。
在我看来,分支是用来防止把代码改崩的一种安全方法。clone代码后,本地只有master主分支,你可以创建新的分支,随意改动玩耍,有需要了再合并到master主分支上, 或者直接以分支的形式,将代码push到远程仓库。
创建并切换到“xiaocai”的分支:
git checkout -b xiaocai
切换回主分支:
git checkout master
删掉xiaocai:
git branch -d xiaocai
推送xiaocai到远程仓库(在这之前,建议在远程仓库也建立一个同名的分支):
git push origin xiaocai:xiaocai
直接git pull(此时本地最好没有还没提交的改动,不然容易出现bug):
git pull
git pull 可以同时进行 获取(fetch) 、 合并(merge)远程仓库的功能。
要合并其他分支到你的当前分支(例如 master),可通过执行:
git merge <branch>
当你这样玩的时候,git 会尝试去自动合并改动。当然,有可能出现冲突(conflicts)。一旦冲突,先把本地改动提交一下:
git add <filename>
提交改动之前,可以先预览下差异:
git diff <source_branch> <target_branch>
执行如下命令可以创建一个叫做 1.0.0 的标签:
git tag 1.0.0 1b2e1d63ff
1b2e1d63ff 是要标记的提交 ID 的前 10 位字符。可以使用下列命令获取提交 ID:
git log
也可以使用少一点的提交 ID 前几位,只要它唯一。
如果操作失误(瞎改胡闹),可以替换掉本地改动:
git checkout -- <filename>
此命令会用 HEAD 中的最新内容替换掉当前工作目录中的文件。
已添加到暂存区的改动以及新文件都不会受到影响。
如果想丢弃你在本地的所有改动与提交,可以拉取远程仓库最新代码,并将你本地主分支指向它:
git fetch origin
git reset --hard origin/master
如:
请参考:https://blog.csdn.net/qq_36663518/article/details/107482818?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162892845416780262523362%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=162892845416780262523362&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_v2~rank_v29-1-107482818.pc_v2_rank_blog_default&utm_term=git&spm=1018.2226.3001.4450