Git学习笔记

1、git init创建版本库(repository)。创建于当前目录下,Mac上默认为隐藏文件,ls -a可以看到
2、git add 与git commit用于提交文件。分为两个过程的原因是git commit可以一次提交多个文件,所以可以先多次git add。git add实际上是把文件添加到暂存区stage(或者说index)中。而git commit是将暂存区中的内容提交到当前分支。
git commit的重要参数“-m“,用法 -m “xxx”用于为本次提交添加描述说明。
git中每一份“快照“都叫做一个commit。
3、git status查看当前状态,当有更改时会给出相应的结果。比如xxx文件被更改过但没有被提交。
查看具体修改的内容需要使用git diff
4、提交修改和上交一个新的文件一样。同样是git add 和 git commit -m “xxx”
5、使用git log来查看各个版本的历史记录。使用- -pretty=oneline简化输出
6、Git中使用HEAD表示当前版本,之前的版本添加^ 例如上一个版本是HEAD^,上上一个是HEAD^^,往上n个版本可以写成HEAD~n
返回到上一个版本就是git reset –hard HEAD^
此时log会发现之前的版本不见了,可以使用git reset - -hard 返回“未来”的版本。commit id不需要是全部的,前几位即可(也不能太短)
如果忘记了未来版本的commit id,可以使用git reflog查看之前的每一次指令。
7、使用git checkout - - 清除掉本次未提交的更改。
当文件自修改后未被放到暂存区,则返回到修改之前的状态。
当文件放到了暂存区后又被修改,则返回到放到暂存区后的状态。
当文件从工作区被删除后,可以复原(因为repository中还有)
8、使用git reset HEAD 可以把已经添加到暂存区的修改给撤销,重新放回工作区。
9、工作区删除——已经commit的文件后,可以使用git rm 将repository中的文件也删除,同时需要git commit。
10、远程仓库。使用github远程仓库之前的设置:
①创建SSH key,当可以在主目录下ls -a查看有无.ssh目录,并查看里面是否有id_rsa和id_rsa.pub文件,如果有则跳到下一步,如果没有,终端下使用ssh-keygen -t rsa -C “youremail@example.com”命令创建SSH Key。
id_rsa是私钥,id_rsa.pub是公钥,可以告诉别人。
②登录github,打开Settings,点击“Add SSH Key”,填写任意title,然后将id_rsa.pub内的内容粘贴到Key文本框中即可。
11、在github上创建仓库。登录github,点击Create a new repo创建新仓库。在本地仓库目录下输入指令git remote add origin git@github.com:YourName/YourPath.git
其中origin是默认叫法,代表远程库。
接下来可以将本地仓库中的内容push到远程仓库中。
输入指令git push -u origin master
github推荐做法:使用HTTP而不是git@github……
重设远程库url:git remote set-url origin
第一次推送master分支时加上-u参数,git会把本地的master同远程的master关联。简化后续操作。
之后本地提交时通过命令git push origin master把master分支的最新修改push到远程repository中。
12、clone别人的repository
首先要只奥repository的地址,然后使用git clone 即可
13、分支。
使用git branch查看当前所有分支,有*标识的是当前分支
使用git branch 创建新的分支 。。。①
使用git checkout 切换到branchname分支 。。。②
上述①,②可以合并为一条指令git checkout -b
使用git merge 将branchname合并到当前分支(快速合并)
使用git branch -d 删除一分支
14、当修改不冲突的时候可以快进合并。如果两条分支都做了修改并且修改冲突,那么不能使用快速合并。使用git status可以查看冲突的文件。此时应该在文件中做出相应修改, 然后add并commit一下完成合并。
可以使用git log - -graph - -pretty=oneline - -abbrev-commit查看分支的合并情况。
(git log - -graph是查看分支合并图,后面的参数是简化输出)
15、非快速合并(团队合作):如果使用快速合并,合并并删除分支后就无法再看出曾经有过分支,所以可以使用非快速合并。
输入git merge - -no-ff -m “…” 指令,参数- -no-ff表明非快速合并,因为本次合并要创建一个新的commit,所以加上-m参数并填写描述。
团队开发中,master分支仅用来发布新版本,平时在dev分支上干活。每个人都有dev的一个分支,不时地往dev上合并即可。
16、当要修复bug时,通常会创建新的分支。如果当前分支工作未完成,还不能提交。则可以使用git stash将现场保存,使用git stash list查看当前所有的暂存现场。
使用git stash apply 可以恢复现场,但是stash内容不删除
使用git stash drop可以将现场删除, 如果未恢复现场直接将其删除,则将无法找回?。。
使用git stash pop来同时完成上面两个操作
上述三条指令皆可以在后面加上 stash@{.}其中.表示通过git stash list查到的stash的序号。表明指定恢复/删除某个现场。
17、使用git branch -D 强行删除一个未合并的分支。
通常新功能会在dev分支上新建feature分支并在feature分支上开发。
18、使用git remote -v查看远程库信息。
使用git push origin 向远程推送分支。如果失败,则用git pull抓取远程的新提交。如果本地分支和远程分支关系没有创建,则使用git branch - -set-upstream-to=origin/ 。
注,git branch - -set-upstream branch-name origin/branch-name已经被遗弃。
19、标签。
使用git tag 创建标签,默认位于HEAD上,可以在后面指定一个commit id。
使用git tag -a -m “…”指定标签信息。-a后面的是标签名字,-m后面的是描述信息。
使用git tag -s -m “…”用PGP签名标签。
使用git tag查看所有标签。
使用git show 展示标签信息。
使用git push origin 推送本地标签
使用git push origin - -tags推送全部未推送的标签。
使用git tag -d 删除一个本地标签
使用git push origin :refs/tags/删除一个远程标签
20、Fork的作用。可以在GitHub上fork任意开源库,fork后自己便有了一份repository的复制,并拥有读写权利,可以推送pull request给官方来贡献代码。
21、.gitignore文件作用:把要忽略的文件名写到里面,git会自动忽略掉这些文件。
.gitignore文件也需要提交。
22、配置文件与别名。
使用git config - -global alias. 为real_name设置别名。
配置文件放在.git/config文件中,别名在[alias]块内,删除别名只需要删除相应行。
全局的配置文件放在主目录下的.gitconfig文件中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值