参考:git详解 http://www.liaoxuefeng.com
工作项目使用
//缓存并更新代码
step1:
git stash
git pull
git stash pop
//查看文件状态
step2:
git status
//多个文件中间空格隔开
step3:
git add 要提交的文件 要提交的文件
step4:
git commit -m “番号名:变更描述”
step5:
git push 分支的位置
//查看提交的状态
step6:gitk
个人使用
windows下安装完git后,需要配置:
git config --global user.name “Your Name”
git config --global user.email “email@example.com”
首先要ssh密钥配置:ssh-keygen -t rsa -C “1129676000@qq.com”
将.ssh/id_rsa.pub 中的内容负值粘贴到github上,添加SSH
gui方式提交代码(需先安装 sudo apt install git-gui):
1.git clone https://github.com/zyRainBow/WIFIProject.git
(或git remote add origin git@github.com:zyRainBow/WIFIProject.git 大多使用SSH方式)
2.git gui(add代码并commit,需要在有.git仓库的目录使用此命令)
3.git push -u origin master(第一次提交需要 -u 参数,此后不需要)
命令行方式提交代码:(git init 将目标文件夹变成git仓库,一般可直接clone即可)
1.git clone https://github.com/zyRainBow/WIFIProject.git
2.git add 要提交的文件 要提交的文件
3.git commit -m “描述”
4.git push origin master
如果在github的remote上已经有了文件,会出现错误。此时应当先pull一下, 再进行git push origin master
常用git
查看系统config:
git config --system --list
查看当前用户配置:
git config --global --list
查看当前仓库配置:
git config --local --list
查看提交历史记录:
git log
导出git提交记录(指定起始时间):
git log --since=2017.5.18 --until=2017.10.26 > git_history2.txt
导出git提交记录(指定author):
git log --author=zhaoying > git_history.txt
查看每一次git命令记录:
git reflog
删除文件:
git rm test.txt
把readme.txt文件在工作区的修改全部撤销:
git checkout – readme.txt
查看分支:
git branch
创建分支:
git branch
切换分支:
git checkout
创建+切换分支:
git checkout -b
合并某分支到当前分支:
git merge
删除分支:
git branch -d
Git代码产生冲突时,推荐先将本地自己的修改备份,然后利用文件比较工具(例如Meld),将自己的修改和服务器最新版本进行比较,手动合并完成merge。
Git 冲突的解决:
在执行git pull命令时,如果和其他开发者在同一位置做了修改,可能会引起冲突,
如果修改已经commit,再git pull 出现同一位置冲突,在冲突时,产生冲突的文件会被标记,用git status命令可以看到;
没有出现同一位置冲突,但本地版本不是服务器最新版本,会出现本地commit记录与服务器不符而影响push。
发生这些情况都需要利用git reset将本地版本回退到与服务器一致的位置,解决冲突;再进行git pull,更新至最新;
然后重新依次进行git add、git commit、git push重新提交。
同一位置冲突,文件被标记的手动解决方法:
1.找到并打开产生冲突的文件
2.<<<<<<<(7个小于号)和=======(7个等于号)之间内容是当前开 发者的代码
=======(7个等于号)和>>>>>>>(7个大于号)之间内容是其他开 发者的代码
3.手动选择删除特殊符号及不需要的代码,完成merge工作
4.执行git add –u命 令把解决好冲突的文件添加到暂存区
5.执行git commit -m "log"命令进行merge提交
在整个项目全代码根目录下强制更新代码:
repo forall -c + git命令 ->轮流进入项目的所有git仓库中执行这条git命令