Git历史
Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制软件/配置管理软件。
于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。
Windows客户端安装
-
方式一
-
方式二
SVN Git对比
Git使用
本地仓库创建
打开命令行工具,在任何目录下创建一个Git仓库目录(你也可以使用已经存在的项目目录),并定位到该目录下。然后通过下面的命令将这个目录初始化为一个Git仓库
git status
git init
git add .
git commit –m “The first commit”
- 第一条查看当前仓库中各个文件的状态
- 第二条命令进行初始化,它会在当前目录下创建一个包含所有元数据和仓库变更历史的.git隐藏目录。后面所有针对这个代码仓库所做的操作,都会被Git记录到这个目录下,这样完全不会破坏你本身代码结构,使得整个项目更加整洁。
- 第三条命令的符号“.”告诉Git开始跟踪并记录当前目录下所有文件变化。
- 最后一条命令则将当前目录下的所有内容进行了一次提交,其中-m是message的意思,一般用来标识此次提交的内容变化信息。
本地仓库处理
Log
git log命令可以查看以往仓库中提交的日志。包括可以查看某个时间点以来,最近指定次数的提交,或是指定文件或目录的变更历史等。
git log
git log -3
版本回退
git reset --hard commit_id
分支处理
-
查看分支:git branch 创建分支:git branch <name> 切换分支:git checkout <name> 创建+切换分支:git checkout -b <name> 合并某分支到当前分支:git merge <name> 删除分支:git branch -d <name>
Git中的分支与其他版本控制很像,但不同点在于Git中的任何一个分支都可以被取回到本地,也可以通过push与其他团队成员共享。使用Git创建和使用分支非常方便,这样开发人员就可以通过创建分支来进行试验性的开发尝试。如果尝试失败了,则可以将对应的本地分支丢弃,而如果成功了,则可以将本地分支与主分支进行归并提交。
git branch <new branch name> <from branch>
git branch <new branch name>
远程仓库处理
对远端代码仓库进行操作也是Git的核心功能。你可以通过push来发布你对远程仓库的更新,或使用pull来同步远端代码仓库。通常情况下Git仓库更多通过SSH协议来进行连接。
Remotes
通过remote命令可以给本地仓库设置对应的远程仓库作为源或目标。
你所设置的远程仓库地址可以通过以下命令查询:如果你是通过clone命令将一个远程仓库同步到本地的,那么默认的,它会显示一个叫做“origin”的远程库。
git remote -v
使用下面的命令来添加远程仓库
git remote add <remote name> <remote address>
Push
Push命令可以将本地的代码仓库变更推送到远程仓库中。
git push <remote name> <branch name>
git push <remote name> <local branch name:remote branch name>
像这样执行git push命令,你能就将当前本地分支的内容推送给远程仓库的指定分支,一般情况下是origine的master分支。完成推送以后,其他具有权限的人就可以获取到你的更新了。
Pull
Pull命令实际上包含了两个操作,首先是获取(fetching)远程仓库的内容,然后与本地仓库的内容与提交历史作自动的归并操作。
git pull
Fetch
另一种同步方式是使用Fetch命令将远程仓库内容放入本地缓存,接着你可以对获取的内容进行检查评估,然后人工进行归并操作。
git fetch <remotename>
git merge <remotename/branchname>
pull = fetch + merge
冲突处理
问题整理
git clone 时显示Filename too long的解决办法
在Git bash中,运行下列命令: git config --global core.longpaths true
--global是该参数的使用范围,如果只想对本版本库设置该参数,只要在上述命令中去掉--global即可。
加载私匙
-
linux
命令 "ssh-add 私匙文件路径"
-
windows
打开git Bash命令行,
依次执行以下命令:
ssh-agent bash
ssh-add "C:\Users\Administrator.ssh\id_rsa"
引号中的路径就是你私匙文件的路径,路径需要使用英文双引号包裹。需要注意的是在git add 之前执行一条 "ssh-add -D" 命令,这是用来清除已有的私钥。