图形的可以使用tortoiseGIT,笔者认为用命令行比较好理解,推荐用命令行,其中基本的介绍可以直接看菜鸟https://www.runoob.com/git/git-create-repository.html
1、创建仓库
(1)在本地创建仓库
git init [directory]
是用在在本地创建新的仓库,以后再把此新的仓库推到server时的情况(也就是说server上原来没有此仓库的那种)
(2)在remote创建仓库
在本地创建完仓库后,需要推送到remote,方法如下:
git remote add origin git@github.com:tianqixin/runoob-git-test.git origin含义是远程仓库的在本地仓库中的名字,可以是任意名字,但是要注意在下边使用git pull、git push等命令时主要用正确使用远程仓库的名字
git push -u origin master
2、克隆
git clone <repo> <directory>
例子:git clone git://github.com/schacon/grit.git mygrit
最后一个参数是git仓库在本地存放的目录,可以省略,默认为当前文件夹下
3、提交
(1)提交到缓存区(无论是新添加了文件,还是在修改原来的文件,都需要git add)
git add [directory / filename]
例子:
git add . 提交本目录所有文件
git add hello.cpp 提价hello.cpp文件
(2)提交到本地master
git commit -m '第一次版本提交',注意若不加 -m,则会直接以用vim打开一个文件的形式让你输入注释
此外还有 git commit -am '第一次版本提交',加上 -a 参数,将(1)、(2)合在一起操作
需要注意的是此语句只用于修改文件,若是新添加了文件,还是需要将(1)、(2)分开来执行,不能直接运行git commit -am
(3)提交到remote
git push origin master:master origin为远程仓库名字,就是server端,第一个master代表远端的分支名称,master可省略,第二个master代表本地分支名称
4、本地仓库与远程仓库回滚
(1)git log 查看本地提交记录,找到commit_id
(2)回滚
git reset --hard commit_id
或 git reset --hard HEAD^/HEAD^^/HAED~100 (回滚上一版本、上上版本、上100版本)
或 git revert -n commit_id,需要注意reset、revert有区别
(对于 git revert 使用本人一直没用明白,等明白了在补充)
其中--hard
选项表示彻底将工作区、暂存区和版本库记录恢复到指定的版本库,HEAD^
表示回滚到上一个版本,HEAD^^
表示回滚到上上一个版本,以此类推,如果要回滚到上100个版本,可以使用HEAD~100
https://blog.csdn.net/qq_36440298/article/details/86065246
参考:
此时就完成了对本地仓库的回滚
(3)git push origin master:master ,推送到远端(此部是对远程仓库实现回滚)
有可能需要加上 -f 参数,因为reset之后本地库落后于远程库一个版本,可能需要强制提交
回滚部分整体参考了:https://zhuanlan.zhihu.com/p/137856034
5、代码拉取更新
方法一:
git pull origin master:master
origin代表远程仓库名字,第一个master代表远端分支名称,第二个master代表合并到本地仓库的分支名称,其中本地仓库的分支名称可以省略
方法二:
git fetch + git merge
例子:
git fetch origin master:brantest 拉取远端的master分支到本地的 brantest 分支,本地仓库分支名称可以省略
git merge brantest 与本地仓库的brantest 分支合并
本部分参考:https://www.cnblogs.com/taohuaya/p/10761799.html
6、reset与revert区别
使用reset回滚日志中不会再显示回滚版本后的版本,使用revert则不会受影响,就像新加了一个版本一样
参考:https://blog.csdn.net/yxlshk/article/details/79944535
7、其他
(1)关于origin的理解
首先origin是远程仓库在本地仓库的名字,当从从服务器clone下来仓库时,git为我们默认指定远程仓库名字为:origin
若仓库是用git init 在本地创建的,则在 git remote add origin url的时候,可以指定远程仓库在本地仓库的名字为其他的名字
参考:https://blog.csdn.net/niexia_/article/details/79422859、https://www.jianshu.com/p/7b2b152cd03f
(2)查看信息
git remote -v 查看远程URL信息
git status 查看在你上次提交之后是否有修改,加上 -s 显示简略信息
git diff 查看执行 git status 的结果的详细信息
(3)配置个人信息
git config --global user.name "runoob"
git config --global user.email test@runoob.com
8、放弃本地的修改
放弃本地更改分三种情况:
(1)未使用 git add 提交到本地仓库
git checkout -- filename 表示放弃本文件的修改
git checkout . 表示放弃当前目录下所有文件的修改
(2)已经使用了 git add 缓存了代码,但没有使用 git commit
git reset HEAD filename 或 git reset HEAD .
此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了第一步1. 未使用git add 缓存代码,继续使用用git checkout -- filename,就可以放弃本地修改
(3)已经使用 git commit
使用4中的回滚方式