Mac git下载安装使用
Mac git下载安装使用
1、mac os安装git
通过命令行 先安装Homebrew,再通过Homebrew安装git
1./bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 安装Homebrew
2.brew install git # 安装git
3.git --version # 查看git版本,如果正确显示了版本信息,说明已安装成功。
2. git配置
1.用户账号信息
配置个人的用户名称和电子邮件地址,以后每次与Git的交互都会使用该信息
$ git config --global user.name "Your Name" //其中Your Name即是你的GitHub账号
$ git config --global user.email "email@example.com" //其中email@example.com即是你GitHub账号绑定的邮箱
2.指令查看Git的配置信息:git config --global --list
3.生成公钥/密钥(ssh key)
Git关联远端仓库时候需要提供公钥,本地保存私钥,每次与远端仓库交互时候,远端仓库会用公钥来验证交互者身份。使用以下指令生成密钥。
$ ssh-keygen -t rsa
一直回车默认,直到成功
4.查看公钥
$ cat .ssh/id_rsa.pub //使用cat命令查看生成的密钥,并复制
5.登陆GitHub,打开“Account settings-->Preferences-->SSH Keys 页面
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容:
3. git常用命令
Git global setup: #Git全局设置
git config --global user.name "chen xiudong"
git config --global user.email "chenxiudong@codemao.cn"
Create a new repository:#创建一个新的仓库
git clone git@gitlab.codemao.cn:chenxiudong/test.git #git远程仓库克隆到本地
cd test
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Push an existing folder:#推送现有文件夹
cd existing_folder
git init
git remote add origin git@gitlab.codemao.cn:chenxiudong/interface.git #关联远程仓库
git add .
git commit -m "Initial commit"
git push -u origin master
Push an existing Git repository: #推送现有Git存储库:
cd existing_repo
git remote rename origin old-origin
git remote add origin git@gitlab.codemao.cn:chenxiudong/interface.git #关联远程仓库
git push -u origin --all
git push -u origin --tags
以下引用了凯宾大佬的笔记:
注意,上面不设定名字的话,那么远程协助就不知道是谁提交的了
------------------------------------------------------------------------------------------
把当前目录变成仓库
git init
1.查看文件修改了什么内容
git diff 文件名
如:git diff readme.txt
1-1.查看工作区和版本库里面最新版本的区别
git diff HEAD -- 文件名 (注意文件名和前面--有空格)
如:git diff HEAD - - readme.txt
2.让我们时刻掌握仓库当前的状态,看什么文件被修改了
git status命令
看什么文件被改了,接着看文件具体修改了什么内容分别用1~2命令
3.把当前这个目录变成Git可以管理的仓库
git init命令
4.把文件添加到仓库轨道(实际上就是把文件修改添加到暂存区)
git add 文件名
git add . 后面加一个.意思是所有改动的文件都添加到暂存区
5.把文件提交到仓库里
git commit -m "备注"
先要把要保存的文件放入仓库轨道,然后再提交到仓库里,使用4~5命令
--------------------------------------------------------------------------add 和 commit 合到一步提交的方法 git commit -am '提交备注'(注意这个命令 如果新增文件就不要用这个新创建的文件会commit不上去,要用add 和 commit命令 )
6.查看版本记录,回到过去
git log
git log --pretty=oneline (精简化只显示 id+备注)
后记: 使用命令查看日志后,按q 即可退出
7.查看文件
$ cat 文件名
如:$ cat readme.txt
8.回滚版本
git reset --hard commit_id
还有git revert (这种会保留前面的版本,把回退的版本再提交一个版本)
https://blog.csdn.net/yxlshk/article/details/79944535
9.要重返未来,查看命令历史 每次commit的命令记录
git reflog
10.文件在工作区的修改全部撤销
(回到最近一次git commit(最新的版本)或git add(和暂缓区那的信息一致)时的状态)
git checkout -- 文件名
git checkout 文件名 (后面试了下 deary说百分之90是不需要加--,我试了下没加成功了,加了反而不行) #撤销单个文件用这个命令
git clean -f #撤销在工作区没有add的全部文件 #亲测 文件 可以用这个命令,但是文件夹的用这个命令不行,要手动区删除文件夹
如:git checkout readme.txt
11.可以把暂存区的修改撤销掉
git reset HEAD file
如:git reset HEAD readme.txt
假如工作区里面有修改,暂缓区有暂缓文件,撤销暂缓区的文件,暂缓区清空,工作区还是原来的修改文件
后记: 使用上面的命令无法把暂存区的文件撤销回工作区
使用了 git rm --cached * 或着 git rm --cached 文件名 可以
当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步9~10
12.删除文件
rm 文件名 (在工作区删除该文件)
如:rm test.txt
git rm 文件名 (在工作区删除该文件,并且提交到暂缓区)
如:git rm test.txt
----------------------------------------------远程仓操作-------------------------------------------------------------------------------------------------------------------------
13.在本地的仓库下运行下面命令,关联远程仓库 (这个是先建了本地仓库,再建远程仓库的,这里一般会提示要你继续关联mastr,见后记)
git remote add origin git@github.com:用户名/远程库名.git
如:git remote add origin git@github.com:michaelliao/learngit.git
14.本地仓库资料提交远程仓库
git push -u origin master (首次提交远程仓库加-u 同步分支,第一次使用会询问验证 输入yes)
如:git push -u origin master
本地仓库版本回滚后,版本低于远程仓,使用下面命令强行更新远程仓:
git push -f origin master
注释: origin
远程仓库名, master
分支名,-f
为force,意为:强行、强制。
有时上面命令不管用 要把 origin 换成远程仓库的名字 ,如: git push -u git@github.com:Lucky-Syw/lucky_test.git master
15.克隆远程仓库到本地仓库 (这个是先建远程仓库,再克隆到本地仓库。 注意这个只需要cd 到你要的文件夹下,执行下面的命令 就直接创建了关联了远程仓的 本地仓了!! )
git clone git@github.com:用户名/远程库名.git
如: git clone git@github.com:michaelliao/gitskills.git
16.克隆别人的仓库,再自己的仓库里使用 git clone git@github.com:用户名/远程库名.git 就可以把别人仓库的资料克隆下来了 (比如以前产品的需求说明放在他自己的github仓库上,我们去下载的情况)
17.同步远程仓库信息到本地关联的仓库里 使用了13关联了远程库,使用17同步远程库资料下来
git pull origin master
18.试了下面这个比较正常 (自己想的,估计是错的)
下面这个操作才是正规的:
18-1:先查看远程仓库有没有变化
git fetch origin
18-2:master分支有变化的话,先使用命令同步下来
git merge origin/master
再提交自己要提交的文件
git push origin master
假如回滚了版本再使用强行push上去
19.上海悠悠的(下次试试这个)
git add *
git commit -m '更新说明'
若果是多人同时开发代码得先git pull #问了Dreamy 其实pull是自动合并 即执行了 上面18-1 和 18-2 的命令
git pull
命令用于从另一个存储库或本地分支获取并集成(整合)
最后一步是push到远程的master分支上
git push origin master
出现问题解决方法:
出现下面的提示
git config --global user.name "Your Name"
git config --global user.email you@example.com
那就按提示输入命令:
git config --global user.name "你的名字"
git config --global user.email 你的邮箱
后记:
本地仓库关联了远程仓库,本地仓库删除文件 要使用 git rm 命令去删 删完再commit提交。
手动删除的 add 是无法把删除文件加入待提交区提交的。
后记:
当本地仓库首次关联了 远程仓库,提交信息到远程仓库时,会报错
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/
那么要使用命令 关联 远程仓的master
git branch --set-upstream-to=origin/本地分支 远程端分支 后 git pull 拉取远程仓
如果远程仓拉取的东西 和本地仓有冲突 会提示
Automatic merge failed; fix conflicts and then commit the result.
那么就打开本地仓具体的文件,进行解决冲突,然后git add 和 git commit 然后再git pull 同步回远程仓库 即可
例子:
git branch --set-upstream-to=origin/master master
----------------------------------分支操作-------------------------------------------------------------------------------------------------------------------------
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name> (这个方法的话 查log的时候是将分支的提交log合并到主线,不知道哪一步是分支和主线合并的步骤)
合并某分支到当前分支:git merge --no-ff -m "merge with no-ff" 分支名称
如:git merge --no-ff -m "merge with no-ff" dev(这个方法合并分支的话,会主线和分合并这里打一个log,那么我们看log的时候就知道这里是做过合并的地方)
删除分支:git branch -d <name> 分支没有合并的话要用-D
``(注意:删除分支后,要找回这个分支,记得要先创建一个分支,在这个分支在找回原来分支的记录。如果在主线找回分支记录的话,主线信息会被分支替换掉)
(假如工作区和暂缓区有工作资料存在,切换支线 这些文件会跟着走,展示在切换的支线上,所以每次切换线之前都要确定当前线没有待办事项)
推送本地分支到远程库: git push origin branch(分支名称)
拉取远程分支到本地分支: git pull origin branch(分支名称)
使用时记录备注:
分支不要去删除主线上的文件,要合并后再删除主线上要删的文件
拉了分支后,不要动主线上的文件,不然主线提交了版本,分支合并不了
16.查看分支合并图形
git log --graph --pretty=oneline --abbrev-commit
git log --oneline --decorate --graph (这句效果一样,也可以看提交记录 和tag记录)
git log --decorate
----------------------------------------------------------打版本标签 tag---------------------------------------
这里要搞明白,一个标签 只能对应一个commit ,一个commit 能对应多个tag
打版本标签,会把最后一次commit的地方加上版本号 v1.0
git tag -a v1.0
#-a 是给这个标签备注的意思,首次一般要-a 给标签加备注,再次使用这个标签的时候就可以不用-a
另外一种写法: git tag -a v0.1.2 -m “0.1.2版本” 会把最后一次commit的地方加上版本号v0.1.2,并对这个标签添加备注“0.1.2版本”
查看所有标签
git tag
删除某个标签
git -d v1.0
后记:有时上面那个命令执行不成功就使用
git tag -d v1.0
如果我们忘了给某个提交打标签,又将它发布了,我们可以给它追加标签的方法
git tag -a v0.9 85fc7e7 (85fc7e7是某次commit的编号,需要打那个就填哪个 v0.9是要打的标签) #这个试了貌似木有ok
git tag -a 0.9 -m "备注" 85fc7e7(85fc7e7是某次commit的编号,需要打那个就填哪个 v0.9是要打的标签 -m 是对标签的备注) #这个试了ok
可以看到说明文字 git show <tagname>
查看标签 git tag
参考:http://www.runoob.com/git/git-tag.html
-------------------------------------------------------------------------------------多人协作-----------------------------------------------------------------------
是把对方的 id_rsa.pub公钥 配置到远程仓库里,再通过克隆,同步远程库等方法达到协作
教程参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
http://www.testclass.net/git/git-github-start/
http://www.runoob.com/git/git-remote-repo.html
看得是前2个
虫师的python-selenium教程有个git多人协助的说明有空要去看
后记:
自己摸索了下一个流程
先拉取github上的主线 到各自关联的本地库,
然后在各自本地库创建自己的分支,进行工作(注意不要删除主线的文件)
工作完后,把分支和主线合并一起,使用命令 git fetch origin 查看远程库主线有没有变化
有变化就先 git pull origin master 同步到本地
然后再 git push origin master 把本地信息推送到远程库
发现上面的流程不对
应该先拉一条master
然后切一条自己分支开发
查看master是否有变化,有变化拉最新的下来
把master合并到自己的分支
推自己的分支上远程仓
经理 远程仓操作合并动作
后记:
git add . 和 git add * 区别
git add . 会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤,但是git add * 会忽略.gitignore把任何文件都加入