文章目录
Linux上先输入
git
看是否已安装,安装命令
sudo apt install git
;
sudo apt-get install git
在Windows上安装Git:使用Windows版的msysgit,官方下载地址:http://msysgit.github.io/
初始配置(新的电脑git clone)
Git 配置:因为Git是分布式版本控制系统,每个机器都需要一个标识,也就是:你的名字和Email地址。
git config --global user.name "XX"
git config --global user.email "xxx@xxx.com"
git地址配置
C:\Windows\System32\drivers\etc里找到hosts文件,添加ip+域名
SSH Key设置
本地Git仓库和GitHub仓库之间的传输是通过SSH加密,需要设置:
- 创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,没有则进行下一步。创建SSH Key
ssh-keygen -t rsa -C "youremail@example.com"
id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。 - 登陆GitHub,打开“Account settings”,“SSH Keys”页面,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。
最后通过git clone + ssh地址,clone成功
建立远程仓库连接
新建一个git 远程仓库(推荐使用)
git clone http://xxx/just_test.git # 从远程库克隆
cd just_test
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master # 将本地仓库的内容推送到远程仓库,第一次推送master分支的所有内容加 -u
已经有Git仓库
cd existing_folder
git init # 把这个目录变成Git可以管理的仓库
git remote add origin http://xxx/just_test.git # 关联远程库,远程库的名字就是origin
git add .
git commit -m "write a message"
git push -u origin master # 将本地仓库的内容推送到远程仓库,第一次推送master分支的所有内容加 -u
项目中的常用命令
git clone ****.git
ls
cd path/
git checkout test # 切换到test分支
#########################################################
git status # 查看仓库当前状态
git add . # 提交文件
git commit -m "modification message"
git push origin test
新建一个临时分支:
git checkout -b feature_x # 创建一个叫做“feature_x”的分支,并切换过去
git branch -d feature_x # 切换回主分支后,再把新建的分支删掉
git push origin <branch> # 除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的
更新与合并及冲突处理:
git pull # 更新本地仓库至最新改动,以实现在当前工作目录中 获取(fetch) 并 合并(merge) 远端的改动
git merge <branch> # 合并其他分支到你的当前分支
# 可能出现冲突(conflicts)的处理:需要修改这些文件来手动合并这些冲突(conflicts)。改完之后,需要执行如下命令以将它们标记为合并成功
git add <filename>
# 在合并改动之前,可以使用如下命令预览差异
git diff <source_branch> <target_branch>
因操作失误需要替换本地改动:
git checkout -- <filename> # 替换掉本地改动,此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。
# 假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它
git fetch origin
git reset --hard origin/master
git reset --hard HEAD^ # 回滚到指定版本,上一个版本是HEAD^,上上个版本是HEAD^^
- 在本地创建和远程分支对应的分支,使用
git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致; - 建立本地分支和远程分支的关联,使用
git branch --set-upstream branch-name origin/branch-name
; - 从远程抓取分支,使用
git pull
,如果有冲突,要先处理冲突,即把Git合并失败的文件手动编辑为我们希望的内容,再提交。
比较:
git fetch <remote>
Download all changes from remote, but don’t integrate into HEAD;git pull <remote> <branch>
Download changes and directly merge/integrate into HEAD.git push <remote> <branch>
Publish local changes on a remote
撤销/回退命令
git reset HEAD <file>
把暂存区的修改撤销掉(unstage),重新放回工作区git reset HEAD test.txt
git checkout -- file
撤销工作区修改,例如git checkout -- test.txt
git reset
回退版本git reset --hard HEAD^
:把当前版本回退到上一个版本
diff 和删除:
git diff readme.txt
查看详细修改内容git rm test1.txt
删除版本库中的文件 然后git commit -m "remove file"
git 常用命令汇总如下
git删除已经提交的idea文件夹
git pull origin master # 将远程仓库里面的项目拉下来
dir # 查看有哪些文件夹
git rm -r --cached .idea # 删除.idea文件夹
git commit -m '删除.idea' # 提交,添加操作说明
git push -u origin master # 将本次更改更新到github项目上去
参考文章:
廖雪峰官网:git教程
Windows下Git入门教程
推荐文章:
pycharm连接git的使用